1# -*- coding: utf-8 -*- 2 3#------------------------------------------------------------------------- 4# drawElements Quality Program utilities 5# -------------------------------------- 6# 7# Copyright 2015 The Android Open Source Project 8# 9# Licensed under the Apache License, Version 2.0 (the "License"); 10# you may not use this file except in compliance with the License. 11# You may obtain a copy of the License at 12# 13# http://www.apache.org/licenses/LICENSE-2.0 14# 15# Unless required by applicable law or agreed to in writing, software 16# distributed under the License is distributed on an "AS IS" BASIS, 17# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18# See the License for the specific language governing permissions and 19# limitations under the License. 20# 21#------------------------------------------------------------------------- 22 23from build.common import DEQP_DIR 24from build.config import ANY_GENERATOR 25from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET 26from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists, parseBuildConfigFromCmdLineArgs 27 28import os 29 30COPYRIGHT_DECLARATION = """ 31 Copyright (C) 2016 The Android Open Source Project 32 33 Licensed under the Apache License, Version 2.0 (the "License"); 34 you may not use this file except in compliance with the License. 35 You may obtain a copy of the License at 36 37 http://www.apache.org/licenses/LICENSE-2.0 38 39 Unless required by applicable law or agreed to in writing, software 40 distributed under the License is distributed on an "AS IS" BASIS, 41 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 42 See the License for the specific language governing permissions and 43 limitations under the License. 44 """ 45 46CTS_DATA_DIR = os.path.join(DEQP_DIR, "android", "cts") 47 48CTS_PROJECT = Project(path = CTS_DATA_DIR, copyright = COPYRIGHT_DECLARATION) 49 50EGL_MODULE = getModuleByName("dEQP-EGL") 51GLES2_MODULE = getModuleByName("dEQP-GLES2") 52GLES3_MODULE = getModuleByName("dEQP-GLES3") 53GLES31_MODULE = getModuleByName("dEQP-GLES31") 54VULKAN_MODULE = getModuleByName("dEQP-VK") 55 56# Master 57 58MASTER_EGL_COMMON_FILTERS = [include("egl-master.txt"), 59 exclude("egl-test-issues.txt"), 60 exclude("egl-manual-robustness.txt"), 61 exclude("egl-driver-issues.txt"), 62 exclude("egl-temp-excluded.txt")] 63MASTER_EGL_PKG = Package(module = EGL_MODULE, configurations = [ 64 # Master 65 Configuration(name = "master", 66 glconfig = "rgba8888d24s8ms0", 67 rotation = "unspecified", 68 surfacetype = "window", 69 required = True, 70 filters = MASTER_EGL_COMMON_FILTERS, 71 runtime = "23m", 72 runByDefault = False), 73 Configuration(name = "master-2020-03-01", 74 glconfig = "rgba8888d24s8ms0", 75 rotation = "unspecified", 76 surfacetype = "window", 77 required = True, 78 filters = [include("egl-master-2020-03-01.txt")], 79 runtime = "23m"), 80 Configuration(name = "master-2022-03-01", 81 glconfig = "rgba8888d24s8ms0", 82 rotation = "unspecified", 83 surfacetype = "window", 84 required = True, 85 filters = MASTER_EGL_COMMON_FILTERS + [exclude("egl-master-2020-03-01.txt")], 86 runtime = "5m"), 87 # Risky subset 88 Configuration(name = "master-risky", 89 glconfig = "rgba8888d24s8ms0", 90 rotation = "unspecified", 91 surfacetype = "window", 92 required = True, 93 filters = [include("egl-temp-excluded.txt")], 94 runtime = "2m"), 95 ]) 96 97MASTER_GLES2_COMMON_FILTERS = [ 98 include("gles2-master.txt"), 99 exclude("gles2-test-issues.txt"), 100 exclude("gles2-failures.txt"), 101 exclude("gles2-temp-excluded.txt"), 102 ] 103MASTER_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [ 104 # Master 105 Configuration(name = "master", 106 glconfig = "rgba8888d24s8ms0", 107 rotation = "unspecified", 108 surfacetype = "window", 109 required = True, 110 filters = MASTER_GLES2_COMMON_FILTERS, 111 runtime = "46m", 112 runByDefault = False), 113 Configuration(name = "master-2020-03-01", 114 glconfig = "rgba8888d24s8ms0", 115 rotation = "unspecified", 116 surfacetype = "window", 117 required = True, 118 filters = [include("gles2-master-2020-03-01.txt")], 119 runtime = "46m"), 120 Configuration(name = "master-2021-03-01", 121 glconfig = "rgba8888d24s8ms0", 122 rotation = "unspecified", 123 surfacetype = "window", 124 required = True, 125 filters = [include("gles2-master-2021-03-01.txt")], 126 runtime = "10m"), 127 Configuration(name = "master-2022-03-01", 128 glconfig = "rgba8888d24s8ms0", 129 rotation = "unspecified", 130 surfacetype = "window", 131 required = True, 132 filters = MASTER_GLES2_COMMON_FILTERS + [exclude("gles2-master-2020-03-01.txt"), exclude("gles2-master-2021-03-01.txt")], 133 runtime = "10m"), 134 ]) 135 136MASTER_GLES3_COMMON_FILTERS = [ 137 include("gles3-master.txt"), 138 exclude("gles3-hw-issues.txt"), 139 exclude("gles3-driver-issues.txt"), 140 exclude("gles3-test-issues.txt"), 141 exclude("gles3-spec-issues.txt"), 142 exclude("gles3-temp-excluded.txt"), 143 exclude("gles3-waivers.txt"), 144 ] 145MASTER_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [ 146 # Master 147 Configuration(name = "master", 148 glconfig = "rgba8888d24s8ms0", 149 rotation = "unspecified", 150 surfacetype = "window", 151 required = True, 152 filters = MASTER_GLES3_COMMON_FILTERS, 153 runtime = "1h50m", 154 runByDefault = False), 155 Configuration(name = "master-2020-03-01", 156 glconfig = "rgba8888d24s8ms0", 157 rotation = "unspecified", 158 surfacetype = "window", 159 required = True, 160 filters = [include("gles3-master-2020-03-01.txt")], 161 runtime = "1h50m"), 162 Configuration(name = "master-2021-03-01", 163 glconfig = "rgba8888d24s8ms0", 164 rotation = "unspecified", 165 surfacetype = "window", 166 required = True, 167 filters = [include("gles3-master-2021-03-01.txt")], 168 runtime = "10m"), 169 Configuration(name = "master-2022-03-01", 170 glconfig = "rgba8888d24s8ms0", 171 rotation = "unspecified", 172 surfacetype = "window", 173 required = True, 174 filters = MASTER_GLES3_COMMON_FILTERS + [exclude("gles3-master-2020-03-01.txt"), exclude("gles3-master-2021-03-01.txt")], 175 runtime = "10m"), 176 # Rotations 177 Configuration(name = "rotate-portrait", 178 glconfig = "rgba8888d24s8ms0", 179 rotation = "0", 180 surfacetype = "window", 181 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 182 runtime = "1m"), 183 Configuration(name = "rotate-landscape", 184 glconfig = "rgba8888d24s8ms0", 185 rotation = "90", 186 surfacetype = "window", 187 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 188 runtime = "1m"), 189 Configuration(name = "rotate-reverse-portrait", 190 glconfig = "rgba8888d24s8ms0", 191 rotation = "180", 192 surfacetype = "window", 193 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 194 runtime = "1m"), 195 Configuration(name = "rotate-reverse-landscape", 196 glconfig = "rgba8888d24s8ms0", 197 rotation = "270", 198 surfacetype = "window", 199 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 200 runtime = "1m"), 201 202 # MSAA 203 Configuration(name = "multisample", 204 glconfig = "rgba8888d24s8ms4", 205 rotation = "unspecified", 206 surfacetype = "window", 207 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"), 208 exclude("gles3-multisample-issues.txt")], 209 runtime = "1m"), 210 211 # Pixel format 212 Configuration(name = "565-no-depth-no-stencil", 213 glconfig = "rgb565d0s0ms0", 214 rotation = "unspecified", 215 surfacetype = "window", 216 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"), 217 exclude("gles3-pixelformat-issues.txt")], 218 runtime = "1m"), 219 # Incremental dEQP 220 Configuration(name = "incremental-deqp", 221 filters = [include("gles3-incremental-deqp.txt")], 222 runtime = "5m", 223 runByDefault = False), 224 ]) 225 226MASTER_GLES31_COMMON_FILTERS = [ 227 include("gles31-master.txt"), 228 exclude("gles31-hw-issues.txt"), 229 exclude("gles31-driver-issues.txt"), 230 exclude("gles31-test-issues.txt"), 231 exclude("gles31-spec-issues.txt"), 232 exclude("gles31-temp-excluded.txt"), 233 exclude("gles31-waivers.txt"), 234 ] 235MASTER_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [ 236 # Master 237 Configuration(name = "master", 238 glconfig = "rgba8888d24s8ms0", 239 rotation = "unspecified", 240 surfacetype = "window", 241 required = True, 242 filters = MASTER_GLES31_COMMON_FILTERS, 243 runtime = "1h40m", 244 runByDefault = False), 245 Configuration(name = "master-2020-03-01", 246 glconfig = "rgba8888d24s8ms0", 247 rotation = "unspecified", 248 surfacetype = "window", 249 required = True, 250 filters = [include("gles31-master-2020-03-01.txt")], 251 runtime = "1h40m"), 252 Configuration(name = "master-2021-03-01", 253 glconfig = "rgba8888d24s8ms0", 254 rotation = "unspecified", 255 surfacetype = "window", 256 required = True, 257 filters = [include("gles31-master-2021-03-01.txt")], 258 runtime = "10m"), 259 Configuration(name = "master-2022-03-01", 260 glconfig = "rgba8888d24s8ms0", 261 rotation = "unspecified", 262 surfacetype = "window", 263 required = True, 264 filters = MASTER_GLES31_COMMON_FILTERS + [exclude("gles31-master-2020-03-01.txt"), exclude("gles31-master-2021-03-01.txt")], 265 runtime = "10m"), 266 267 # Rotations 268 Configuration(name = "rotate-portrait", 269 glconfig = "rgba8888d24s8ms0", 270 rotation = "0", 271 surfacetype = "window", 272 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 273 runtime = "1m30s"), 274 Configuration(name = "rotate-landscape", 275 glconfig = "rgba8888d24s8ms0", 276 rotation = "90", 277 surfacetype = "window", 278 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 279 runtime = "1m30s"), 280 Configuration(name = "rotate-reverse-portrait", 281 glconfig = "rgba8888d24s8ms0", 282 rotation = "180", 283 surfacetype = "window", 284 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 285 runtime = "1m30s"), 286 Configuration(name = "rotate-reverse-landscape", 287 glconfig = "rgba8888d24s8ms0", 288 rotation = "270", 289 surfacetype = "window", 290 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 291 runtime = "1m30s"), 292 293 # MSAA 294 Configuration(name = "multisample", 295 glconfig = "rgba8888d24s8ms4", 296 rotation = "unspecified", 297 surfacetype = "window", 298 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")], 299 runtime = "2m"), 300 301 # Pixel format 302 Configuration(name = "565-no-depth-no-stencil", 303 glconfig = "rgb565d0s0ms0", 304 rotation = "unspecified", 305 surfacetype = "window", 306 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")], 307 runtime = "1m"), 308 ]) 309 310MASTER_VULKAN_FILTERS = [ 311 include("vk-master.txt"), 312 exclude("vk-not-applicable.txt"), 313 exclude("vk-excluded-tests.txt"), 314 exclude("vk-test-issues.txt"), 315 exclude("vk-waivers.txt"), 316 exclude("vk-temp-excluded.txt"), 317 ] 318MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [ 319 Configuration(name = "master", 320 filters = MASTER_VULKAN_FILTERS, 321 runtime = "2h39m", 322 runByDefault = False, 323 splitToMultipleFiles = True), 324 Configuration(name = "master-2019-03-01", 325 filters = [include("vk-master-2019-03-01.txt")], 326 runtime = "2h29m", 327 splitToMultipleFiles = True), 328 Configuration(name = "master-2020-03-01", 329 filters = [include("vk-master-2020-03-01.txt")], 330 runtime = "2h29m", 331 splitToMultipleFiles = True), 332 Configuration(name = "master-2021-03-01", 333 filters = [include("vk-master-2021-03-01.txt")], 334 runtime = "2h29m", 335 splitToMultipleFiles = True), 336 Configuration(name = "master-2022-03-01", 337 filters = MASTER_VULKAN_FILTERS + [exclude("vk-master-2019-03-01.txt"), exclude("vk-master-2020-03-01.txt"), exclude("vk-master-2021-03-01.txt")], 338 runtime = "10m", 339 splitToMultipleFiles = True), 340 Configuration(name = "incremental-deqp", 341 filters = [include("vk-incremental-deqp.txt")], 342 runtime = "5m", 343 runByDefault = False, 344 splitToMultipleFiles = True), 345 ]) 346 347MUSTPASS_LISTS = [ 348 Mustpass(project = CTS_PROJECT, version = "master", packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG]) 349 ] 350 351if __name__ == "__main__": 352 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs()) 353