1 # -*- coding: utf-8 -*-
3 #-------------------------------------------------------------------------
4 # drawElements Quality Program utilities
5 # --------------------------------------
7 # Copyright 2015 The Android Open Source Project
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
13 # http://www.apache.org/licenses/LICENSE-2.0
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.
21 #-------------------------------------------------------------------------
23 from build.common import DEQP_DIR
24 from build.config import ANY_GENERATOR
25 from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET
26 from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists, parseBuildConfigFromCmdLineArgs
30 COPYRIGHT_DECLARATION = """
31 Copyright (C) 2016 The Android Open Source Project
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
37 http://www.apache.org/licenses/LICENSE-2.0
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.
46 CTS_DATA_DIR = os.path.join(DEQP_DIR, "android", "cts")
48 CTS_PROJECT = Project(path = CTS_DATA_DIR, copyright = COPYRIGHT_DECLARATION)
50 EGL_MODULE = getModuleByName("dEQP-EGL")
51 GLES2_MODULE = getModuleByName("dEQP-GLES2")
52 GLES3_MODULE = getModuleByName("dEQP-GLES3")
53 GLES31_MODULE = getModuleByName("dEQP-GLES31")
54 VULKAN_MODULE = getModuleByName("dEQP-VK")
58 LMP_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
59 Configuration(name = "master",
60 glconfig = "rgba8888d24s8ms0",
61 rotation = "unspecified",
62 surfacetype = "window",
63 filters = [include("es30-lmp.txt")]),
65 LMP_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
66 Configuration(name = "master",
67 glconfig = "rgba8888d24s8ms0",
68 rotation = "unspecified",
69 surfacetype = "window",
70 filters = [include("es31-lmp.txt")]),
75 LMP_MR1_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
76 Configuration(name = "master",
77 glconfig = "rgba8888d24s8ms0",
78 rotation = "unspecified",
79 surfacetype = "window",
80 filters = [include("es30-lmp-mr1.txt")]),
82 LMP_MR1_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
83 Configuration(name = "master",
84 glconfig = "rgba8888d24s8ms0",
85 rotation = "unspecified",
86 surfacetype = "window",
87 filters = [include("es31-lmp-mr1.txt")]),
92 MNC_EGL_PKG = Package(module = EGL_MODULE, configurations = [
94 Configuration(name = "master",
95 glconfig = "rgba8888d24s8ms0",
96 rotation = "unspecified",
97 surfacetype = "window",
98 filters = [include("egl-master.txt")]),
100 MNC_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [
102 Configuration(name = "master",
103 glconfig = "rgba8888d24s8ms0",
104 rotation = "unspecified",
105 surfacetype = "window",
106 filters = [include("gles2-master.txt")]),
108 MNC_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
110 Configuration(name = "master",
111 glconfig = "rgba8888d24s8ms0",
112 rotation = "unspecified",
113 surfacetype = "window",
114 filters = [include("gles3-master.txt")]),
116 Configuration(name = "rotate-portrait",
117 glconfig = "rgba8888d24s8ms0",
119 surfacetype = "window",
120 filters = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
121 Configuration(name = "rotate-landscape",
122 glconfig = "rgba8888d24s8ms0",
124 surfacetype = "window",
125 filters = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
126 Configuration(name = "rotate-reverse-portrait",
127 glconfig = "rgba8888d24s8ms0",
129 surfacetype = "window",
130 filters = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
131 Configuration(name = "rotate-reverse-landscape",
132 glconfig = "rgba8888d24s8ms0",
134 surfacetype = "window",
135 filters = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
138 Configuration(name = "multisample",
139 glconfig = "rgba8888d24s8ms4",
140 rotation = "unspecified",
141 surfacetype = "window",
142 filters = [include("gles3-master.txt"),
143 include("gles3-multisample.txt"),
144 exclude("gles3-multisample-issues.txt")]),
147 Configuration(name = "565-no-depth-no-stencil",
148 glconfig = "rgb565d0s0ms0",
149 rotation = "unspecified",
150 surfacetype = "window",
151 filters = [include("gles3-master.txt"),
152 include("gles3-pixelformat.txt"),
153 exclude("gles3-pixelformat-issues.txt")]),
155 MNC_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
157 Configuration(name = "master",
158 glconfig = "rgba8888d24s8ms0",
159 rotation = "unspecified",
160 surfacetype = "window",
161 filters = [include("gles31-master.txt")]),
164 Configuration(name = "rotate-portrait",
165 glconfig = "rgba8888d24s8ms0",
167 surfacetype = "window",
168 filters = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
169 Configuration(name = "rotate-landscape",
170 glconfig = "rgba8888d24s8ms0",
172 surfacetype = "window",
173 filters = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
174 Configuration(name = "rotate-reverse-portrait",
175 glconfig = "rgba8888d24s8ms0",
177 surfacetype = "window",
178 filters = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
179 Configuration(name = "rotate-reverse-landscape",
180 glconfig = "rgba8888d24s8ms0",
182 surfacetype = "window",
183 filters = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
186 Configuration(name = "multisample",
187 glconfig = "rgba8888d24s8ms4",
188 rotation = "unspecified",
189 surfacetype = "window",
190 filters = [include("gles31-master.txt"), include("gles31-multisample.txt")]),
193 Configuration(name = "565-no-depth-no-stencil",
194 glconfig = "rgb565d0s0ms0",
195 rotation = "unspecified",
196 surfacetype = "window",
197 filters = [include("gles31-master.txt"), include("gles31-pixelformat.txt")]),
202 NYC_EGL_COMMON_FILTERS = [include("egl-master.txt")]
203 NYC_EGL_PKG = Package(module = EGL_MODULE, configurations = [
205 Configuration(name = "master",
206 glconfig = "rgba8888d24s8ms0",
207 rotation = "unspecified",
208 surfacetype = "window",
209 filters = NYC_EGL_COMMON_FILTERS,
213 NYC_GLES2_COMMON_FILTERS = [
214 include("gles2-master.txt")
216 NYC_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [
218 Configuration(name = "master",
219 glconfig = "rgba8888d24s8ms0",
220 rotation = "unspecified",
221 surfacetype = "window",
222 filters = NYC_GLES2_COMMON_FILTERS,
226 NYC_GLES3_COMMON_FILTERS = [
227 include("gles3-master.txt")
229 NYC_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
231 Configuration(name = "master",
232 glconfig = "rgba8888d24s8ms0",
233 rotation = "unspecified",
234 surfacetype = "window",
235 filters = NYC_GLES3_COMMON_FILTERS,
236 runtime = "1h50min"),
238 Configuration(name = "rotate-portrait",
239 glconfig = "rgba8888d24s8ms0",
241 surfacetype = "window",
242 filters = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
244 Configuration(name = "rotate-landscape",
245 glconfig = "rgba8888d24s8ms0",
247 surfacetype = "window",
248 filters = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
250 Configuration(name = "rotate-reverse-portrait",
251 glconfig = "rgba8888d24s8ms0",
253 surfacetype = "window",
254 filters = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
256 Configuration(name = "rotate-reverse-landscape",
257 glconfig = "rgba8888d24s8ms0",
259 surfacetype = "window",
260 filters = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
264 Configuration(name = "multisample",
265 glconfig = "rgba8888d24s8ms4",
266 rotation = "unspecified",
267 surfacetype = "window",
268 filters = NYC_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt")],
272 Configuration(name = "565-no-depth-no-stencil",
273 glconfig = "rgb565d0s0ms0",
274 rotation = "unspecified",
275 surfacetype = "window",
276 filters = NYC_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt")],
280 NYC_GLES31_COMMON_FILTERS = [
281 include("gles31-master.txt")
283 NYC_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
285 Configuration(name = "master",
286 glconfig = "rgba8888d24s8ms0",
287 rotation = "unspecified",
288 surfacetype = "window",
289 filters = NYC_GLES31_COMMON_FILTERS,
293 Configuration(name = "rotate-portrait",
294 glconfig = "rgba8888d24s8ms0",
296 surfacetype = "window",
297 filters = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
299 Configuration(name = "rotate-landscape",
300 glconfig = "rgba8888d24s8ms0",
302 surfacetype = "window",
303 filters = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
305 Configuration(name = "rotate-reverse-portrait",
306 glconfig = "rgba8888d24s8ms0",
308 surfacetype = "window",
309 filters = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
311 Configuration(name = "rotate-reverse-landscape",
312 glconfig = "rgba8888d24s8ms0",
314 surfacetype = "window",
315 filters = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
319 Configuration(name = "multisample",
320 glconfig = "rgba8888d24s8ms4",
321 rotation = "unspecified",
322 surfacetype = "window",
323 filters = NYC_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
327 Configuration(name = "565-no-depth-no-stencil",
328 glconfig = "rgb565d0s0ms0",
329 rotation = "unspecified",
330 surfacetype = "window",
331 filters = NYC_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
335 NYC_VULKAN_FILTERS = [
336 include("vk-master.txt")
338 NYC_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [
339 Configuration(name = "master",
340 filters = NYC_VULKAN_FILTERS,
346 MASTER_EGL_COMMON_FILTERS = [include("egl-master.txt"),
347 exclude("egl-test-issues.txt"),
348 exclude("egl-internal-api-tests.txt"),
349 exclude("egl-manual-robustness.txt")]
350 MASTER_EGL_PKG = Package(module = EGL_MODULE, configurations = [
352 Configuration(name = "master",
353 glconfig = "rgba8888d24s8ms0",
354 rotation = "unspecified",
355 surfacetype = "window",
357 filters = MASTER_EGL_COMMON_FILTERS,
361 MASTER_GLES2_COMMON_FILTERS = [
362 include("gles2-master.txt"),
363 exclude("gles2-test-issues.txt"),
364 exclude("gles2-failures.txt")
366 MASTER_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [
368 Configuration(name = "master",
369 glconfig = "rgba8888d24s8ms0",
370 rotation = "unspecified",
371 surfacetype = "window",
373 filters = MASTER_GLES2_COMMON_FILTERS,
377 MASTER_GLES3_COMMON_FILTERS = [
378 include("gles3-master.txt"),
379 exclude("gles3-hw-issues.txt"),
380 exclude("gles3-driver-issues.txt"),
381 exclude("gles3-test-issues.txt"),
382 exclude("gles3-spec-issues.txt")
384 MASTER_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
386 Configuration(name = "master",
387 glconfig = "rgba8888d24s8ms0",
388 rotation = "unspecified",
389 surfacetype = "window",
391 filters = MASTER_GLES3_COMMON_FILTERS,
394 Configuration(name = "rotate-portrait",
395 glconfig = "rgba8888d24s8ms0",
397 surfacetype = "window",
398 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
400 Configuration(name = "rotate-landscape",
401 glconfig = "rgba8888d24s8ms0",
403 surfacetype = "window",
404 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
406 Configuration(name = "rotate-reverse-portrait",
407 glconfig = "rgba8888d24s8ms0",
409 surfacetype = "window",
410 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
412 Configuration(name = "rotate-reverse-landscape",
413 glconfig = "rgba8888d24s8ms0",
415 surfacetype = "window",
416 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
420 Configuration(name = "multisample",
421 glconfig = "rgba8888d24s8ms4",
422 rotation = "unspecified",
423 surfacetype = "window",
424 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
425 exclude("gles3-multisample-issues.txt")],
429 Configuration(name = "565-no-depth-no-stencil",
430 glconfig = "rgb565d0s0ms0",
431 rotation = "unspecified",
432 surfacetype = "window",
433 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
434 exclude("gles3-pixelformat-issues.txt")],
438 MASTER_GLES31_COMMON_FILTERS = [
439 include("gles31-master.txt"),
440 exclude("gles31-hw-issues.txt"),
441 exclude("gles31-driver-issues.txt"),
442 exclude("gles31-test-issues.txt"),
443 exclude("gles31-spec-issues.txt")
445 MASTER_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
447 Configuration(name = "master",
448 glconfig = "rgba8888d24s8ms0",
449 rotation = "unspecified",
450 surfacetype = "window",
452 filters = MASTER_GLES31_COMMON_FILTERS,
456 Configuration(name = "rotate-portrait",
457 glconfig = "rgba8888d24s8ms0",
459 surfacetype = "window",
460 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
462 Configuration(name = "rotate-landscape",
463 glconfig = "rgba8888d24s8ms0",
465 surfacetype = "window",
466 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
468 Configuration(name = "rotate-reverse-portrait",
469 glconfig = "rgba8888d24s8ms0",
471 surfacetype = "window",
472 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
474 Configuration(name = "rotate-reverse-landscape",
475 glconfig = "rgba8888d24s8ms0",
477 surfacetype = "window",
478 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
482 Configuration(name = "multisample",
483 glconfig = "rgba8888d24s8ms4",
484 rotation = "unspecified",
485 surfacetype = "window",
486 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
490 Configuration(name = "565-no-depth-no-stencil",
491 glconfig = "rgb565d0s0ms0",
492 rotation = "unspecified",
493 surfacetype = "window",
494 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
498 MASTER_VULKAN_FILTERS = [
499 include("vk-master.txt"),
500 exclude("vk-not-applicable.txt"),
501 exclude("vk-excluded-tests.txt"),
502 exclude("vk-test-issues.txt"),
503 exclude("vk-waivers.txt")
505 MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [
506 Configuration(name = "master",
507 filters = MASTER_VULKAN_FILTERS,
512 Mustpass(project = CTS_PROJECT, version = "lmp", packages = [LMP_GLES3_PKG, LMP_GLES31_PKG]),
513 Mustpass(project = CTS_PROJECT, version = "lmp-mr1", packages = [LMP_MR1_GLES3_PKG, LMP_MR1_GLES31_PKG]),
514 Mustpass(project = CTS_PROJECT, version = "mnc", packages = [MNC_EGL_PKG, MNC_GLES2_PKG, MNC_GLES3_PKG, MNC_GLES31_PKG]),
515 Mustpass(project = CTS_PROJECT, version = "nyc", packages = [NYC_EGL_PKG, NYC_GLES2_PKG, NYC_GLES3_PKG, NYC_GLES31_PKG, NYC_VULKAN_PKG]),
516 Mustpass(project = CTS_PROJECT, version = "master", packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
519 if __name__ == "__main__":
520 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())