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 ctsbuild.common import DEQP_DIR 24from ctsbuild.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") 55VULKANSC_MODULE = getModuleByName("dEQP-VKSC") 56 57# Main 58 59MAIN_EGL_COMMON_FILTERS = [include("egl-master.txt"), 60 exclude("egl-test-issues.txt"), 61 exclude("egl-manual-robustness.txt"), 62 exclude("egl-driver-issues.txt"), 63 exclude("egl-temp-excluded.txt")] 64 65# Android CTS is not using EGL test list for year 2021 66MAIN_EGL_PKG = Package(module = EGL_MODULE, configurations = [ 67 # Main 68 Configuration(name = "master", 69 glconfig = "rgba8888d24s8ms0", 70 rotation = "unspecified", 71 surfacetype = "window", 72 required = True, 73 filters = MAIN_EGL_COMMON_FILTERS, 74 runtime = "23m", 75 runByDefault = False), 76 Configuration(name = "master-2020-03-01", 77 glconfig = "rgba8888d24s8ms0", 78 rotation = "unspecified", 79 surfacetype = "window", 80 required = True, 81 filters = [include("egl-master-2020-03-01.txt")], 82 runtime = "23m"), 83 Configuration(name = "master-2022-03-01", 84 glconfig = "rgba8888d24s8ms0", 85 rotation = "unspecified", 86 surfacetype = "window", 87 required = True, 88 filters = [include("egl-master-2022-03-01.txt")], 89 runtime = "5m"), 90 Configuration(name = "master-2023-03-01", 91 glconfig = "rgba8888d24s8ms0", 92 rotation = "unspecified", 93 surfacetype = "window", 94 required = True, 95 filters = MAIN_EGL_COMMON_FILTERS + [exclude("egl-master-2020-03-01.txt"), exclude("egl-master-2022-03-01.txt")], 96 runtime = "5m"), 97 # Risky subset 98 Configuration(name = "master-risky", 99 glconfig = "rgba8888d24s8ms0", 100 rotation = "unspecified", 101 surfacetype = "window", 102 required = True, 103 filters = [include("egl-temp-excluded.txt")], 104 runtime = "2m"), 105 ]) 106 107MAIN_GLES2_COMMON_FILTERS = [ 108 include("gles2-master.txt"), 109 exclude("gles2-test-issues.txt"), 110 exclude("gles2-failures.txt"), 111 exclude("gles2-temp-excluded.txt"), 112 ] 113MAIN_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [ 114 # Main 115 Configuration(name = "master", 116 glconfig = "rgba8888d24s8ms0", 117 rotation = "unspecified", 118 surfacetype = "window", 119 required = True, 120 filters = MAIN_GLES2_COMMON_FILTERS, 121 runtime = "46m", 122 runByDefault = False), 123 Configuration(name = "master-2020-03-01", 124 glconfig = "rgba8888d24s8ms0", 125 rotation = "unspecified", 126 surfacetype = "window", 127 required = True, 128 filters = [include("gles2-master-2020-03-01.txt")], 129 runtime = "46m"), 130 Configuration(name = "master-2021-03-01", 131 glconfig = "rgba8888d24s8ms0", 132 rotation = "unspecified", 133 surfacetype = "window", 134 required = True, 135 filters = [include("gles2-master-2021-03-01.txt")], 136 runtime = "10m"), 137 Configuration(name = "master-2022-03-01", 138 glconfig = "rgba8888d24s8ms0", 139 rotation = "unspecified", 140 surfacetype = "window", 141 required = True, 142 filters = [include("gles2-master-2022-03-01.txt")], 143 runtime = "10m"), 144 Configuration(name = "master-2023-03-01", 145 glconfig = "rgba8888d24s8ms0", 146 rotation = "unspecified", 147 surfacetype = "window", 148 required = True, 149 filters = MAIN_GLES2_COMMON_FILTERS + [exclude("gles2-master-2020-03-01.txt"), exclude("gles2-master-2021-03-01.txt"), exclude("gles2-master-2022-03-01.txt")], 150 runtime = "10m"), 151 ]) 152 153MAIN_GLES3_COMMON_FILTERS = [ 154 include("gles3-master.txt"), 155 exclude("gles3-hw-issues.txt"), 156 exclude("gles3-driver-issues.txt"), 157 exclude("gles3-test-issues.txt"), 158 exclude("gles3-spec-issues.txt"), 159 exclude("gles3-temp-excluded.txt"), 160 exclude("gles3-waivers.txt"), 161 ] 162MAIN_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [ 163 # Main 164 Configuration(name = "master", 165 glconfig = "rgba8888d24s8ms0", 166 rotation = "unspecified", 167 surfacetype = "window", 168 required = True, 169 filters = MAIN_GLES3_COMMON_FILTERS, 170 runtime = "1h50m", 171 runByDefault = False), 172 Configuration(name = "master-2020-03-01", 173 glconfig = "rgba8888d24s8ms0", 174 rotation = "unspecified", 175 surfacetype = "window", 176 required = True, 177 filters = [include("gles3-master-2020-03-01.txt")], 178 runtime = "1h50m"), 179 Configuration(name = "master-2021-03-01", 180 glconfig = "rgba8888d24s8ms0", 181 rotation = "unspecified", 182 surfacetype = "window", 183 required = True, 184 filters = [include("gles3-master-2021-03-01.txt")], 185 runtime = "10m"), 186 Configuration(name = "master-2022-03-01", 187 glconfig = "rgba8888d24s8ms0", 188 rotation = "unspecified", 189 surfacetype = "window", 190 required = True, 191 filters = [include("gles3-master-2022-03-01.txt")], 192 runtime = "10m"), 193 Configuration(name = "master-2023-03-01", 194 glconfig = "rgba8888d24s8ms0", 195 rotation = "unspecified", 196 surfacetype = "window", 197 required = True, 198 filters = MAIN_GLES3_COMMON_FILTERS + [exclude("gles3-master-2020-03-01.txt"), exclude("gles3-master-2021-03-01.txt"), exclude("gles3-master-2022-03-01.txt")], 199 runtime = "10m"), 200 # Rotations 201 Configuration(name = "rotate-portrait", 202 glconfig = "rgba8888d24s8ms0", 203 rotation = "0", 204 surfacetype = "window", 205 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 206 runtime = "1m"), 207 Configuration(name = "rotate-landscape", 208 glconfig = "rgba8888d24s8ms0", 209 rotation = "90", 210 surfacetype = "window", 211 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 212 runtime = "1m"), 213 Configuration(name = "rotate-reverse-portrait", 214 glconfig = "rgba8888d24s8ms0", 215 rotation = "180", 216 surfacetype = "window", 217 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 218 runtime = "1m"), 219 Configuration(name = "rotate-reverse-landscape", 220 glconfig = "rgba8888d24s8ms0", 221 rotation = "270", 222 surfacetype = "window", 223 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 224 runtime = "1m"), 225 226 # MSAA 227 Configuration(name = "multisample", 228 glconfig = "rgba8888d24s8ms4", 229 rotation = "unspecified", 230 surfacetype = "window", 231 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"), 232 exclude("gles3-multisample-issues.txt")], 233 runtime = "1m"), 234 235 # Pixel format 236 Configuration(name = "565-no-depth-no-stencil", 237 glconfig = "rgb565d0s0ms0", 238 rotation = "unspecified", 239 surfacetype = "window", 240 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"), 241 exclude("gles3-pixelformat-issues.txt")], 242 runtime = "1m"), 243 # Incremental dEQP 244 Configuration(name = "incremental-deqp", 245 filters = [include("gles3-incremental-deqp.txt")], 246 runtime = "5m", 247 runByDefault = False), 248 ]) 249 250MAIN_GLES31_COMMON_FILTERS = [ 251 include("gles31-master.txt"), 252 exclude("gles31-hw-issues.txt"), 253 exclude("gles31-driver-issues.txt"), 254 exclude("gles31-test-issues.txt"), 255 exclude("gles31-spec-issues.txt"), 256 exclude("gles31-temp-excluded.txt"), 257 exclude("gles31-waivers.txt"), 258 ] 259MAIN_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [ 260 # Main 261 Configuration(name = "master", 262 glconfig = "rgba8888d24s8ms0", 263 rotation = "unspecified", 264 surfacetype = "window", 265 required = True, 266 filters = MAIN_GLES31_COMMON_FILTERS, 267 runtime = "1h40m", 268 runByDefault = False), 269 Configuration(name = "master-2020-03-01", 270 glconfig = "rgba8888d24s8ms0", 271 rotation = "unspecified", 272 surfacetype = "window", 273 required = True, 274 filters = [include("gles31-master-2020-03-01.txt")], 275 runtime = "1h40m"), 276 Configuration(name = "master-2021-03-01", 277 glconfig = "rgba8888d24s8ms0", 278 rotation = "unspecified", 279 surfacetype = "window", 280 required = True, 281 filters = [include("gles31-master-2021-03-01.txt")], 282 runtime = "10m"), 283 Configuration(name = "master-2022-03-01", 284 glconfig = "rgba8888d24s8ms0", 285 rotation = "unspecified", 286 surfacetype = "window", 287 required = True, 288 filters = [include("gles31-master-2022-03-01.txt")], 289 runtime = "10m"), 290 Configuration(name = "master-2023-03-01", 291 glconfig = "rgba8888d24s8ms0", 292 rotation = "unspecified", 293 surfacetype = "window", 294 required = True, 295 filters = MAIN_GLES31_COMMON_FILTERS + [exclude("gles31-master-2020-03-01.txt"), exclude("gles31-master-2021-03-01.txt"),exclude("gles31-master-2022-03-01.txt")], 296 runtime = "10m"), 297 # Rotations 298 Configuration(name = "rotate-portrait", 299 glconfig = "rgba8888d24s8ms0", 300 rotation = "0", 301 surfacetype = "window", 302 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 303 runtime = "1m30s"), 304 Configuration(name = "rotate-landscape", 305 glconfig = "rgba8888d24s8ms0", 306 rotation = "90", 307 surfacetype = "window", 308 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 309 runtime = "1m30s"), 310 Configuration(name = "rotate-reverse-portrait", 311 glconfig = "rgba8888d24s8ms0", 312 rotation = "180", 313 surfacetype = "window", 314 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 315 runtime = "1m30s"), 316 Configuration(name = "rotate-reverse-landscape", 317 glconfig = "rgba8888d24s8ms0", 318 rotation = "270", 319 surfacetype = "window", 320 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 321 runtime = "1m30s"), 322 323 # MSAA 324 Configuration(name = "multisample", 325 glconfig = "rgba8888d24s8ms4", 326 rotation = "unspecified", 327 surfacetype = "window", 328 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")], 329 runtime = "2m"), 330 331 # Pixel format 332 Configuration(name = "565-no-depth-no-stencil", 333 glconfig = "rgb565d0s0ms0", 334 rotation = "unspecified", 335 surfacetype = "window", 336 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")], 337 runtime = "1m"), 338 ]) 339 340MAIN_VULKAN_FILTERS = [ 341 include("vk-master.txt"), 342 exclude("vk-not-applicable.txt"), 343 exclude("vk-excluded-tests.txt"), 344 exclude("vk-test-issues.txt"), 345 exclude("vk-waivers.txt"), 346 exclude("vk-temp-excluded.txt"), 347 ] 348MAIN_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [ 349 Configuration(name = "master", 350 filters = MAIN_VULKAN_FILTERS, 351 runtime = "2h39m", 352 runByDefault = False, 353 listOfGroupsToSplit = ["dEQP-VK", "dEQP-VK.pipeline"]), 354 Configuration(name = "master-2019-03-01", 355 filters = [include("vk-master-2019-03-01.txt")], 356 runtime = "2h29m", 357 listOfGroupsToSplit = ["dEQP-VK"]), 358 Configuration(name = "master-2020-03-01", 359 filters = [include("vk-master-2020-03-01.txt")], 360 runtime = "2h29m", 361 listOfGroupsToSplit = ["dEQP-VK"]), 362 Configuration(name = "master-2021-03-01", 363 filters = [include("vk-master-2021-03-01.txt")], 364 runtime = "2h29m", 365 listOfGroupsToSplit = ["dEQP-VK"]), 366 Configuration(name = "master-2022-03-01", 367 filters = [include("vk-master-2022-03-01.txt")], 368 runtime = "10m", 369 listOfGroupsToSplit = ["dEQP-VK"]), 370 Configuration(name = "master-2023-03-01", 371 filters = MAIN_VULKAN_FILTERS + [exclude("vk-master-2019-03-01.txt"), exclude("vk-master-2020-03-01.txt"), exclude("vk-master-2021-03-01.txt"), exclude("vk-master-2022-03-01.txt"),], 372 runtime = "10m", 373 listOfGroupsToSplit = ["dEQP-VK"]), 374 Configuration(name = "incremental-deqp", 375 filters = [include("vk-incremental-deqp.txt")], 376 runtime = "5m", 377 runByDefault = False, 378 listOfGroupsToSplit = []), 379 ]) 380 381MAIN_VULKANSC_FILTERS = [ 382 include("vksc-master.txt"), 383 ] 384MAIN_VULKANSC_PKG = Package(module = VULKANSC_MODULE, configurations = [ 385 Configuration(name = "main", 386 filters = MAIN_VULKANSC_FILTERS, 387 runtime = "2h39m", 388 runByDefault = False, 389 listOfGroupsToSplit = ["dEQP-VKSC"]), 390 ]) 391 392MUSTPASS_LISTS = [ 393 Mustpass(project = CTS_PROJECT, version = "main", packages = [MAIN_EGL_PKG, MAIN_GLES2_PKG, MAIN_GLES3_PKG, MAIN_GLES31_PKG, MAIN_VULKAN_PKG, MAIN_VULKANSC_PKG]) 394 ] 395 396if __name__ == "__main__": 397 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs()) 398