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 ctsbuild.common import DEQP_DIR
24 from ctsbuild.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")
55 VULKANSC_MODULE = getModuleByName("dEQP-VKSC")
59 MAIN_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 MAIN_EGL_PKG = Package(module = EGL_MODULE, configurations = [
66 Configuration(name = "master",
67 glconfig = "rgba8888d24s8ms0",
68 rotation = "unspecified",
69 surfacetype = "window",
71 filters = MAIN_EGL_COMMON_FILTERS,
73 runByDefault = False),
74 Configuration(name = "master-2020-03-01",
75 glconfig = "rgba8888d24s8ms0",
76 rotation = "unspecified",
77 surfacetype = "window",
79 filters = [include("egl-master-2020-03-01.txt")],
81 Configuration(name = "master-2022-03-01",
82 glconfig = "rgba8888d24s8ms0",
83 rotation = "unspecified",
84 surfacetype = "window",
86 filters = MAIN_EGL_COMMON_FILTERS + [exclude("egl-master-2021-03-01.txt")],
89 Configuration(name = "master-risky",
90 glconfig = "rgba8888d24s8ms0",
91 rotation = "unspecified",
92 surfacetype = "window",
94 filters = [include("egl-temp-excluded.txt")],
98 MAIN_GLES2_COMMON_FILTERS = [
99 include("gles2-master.txt"),
100 exclude("gles2-test-issues.txt"),
101 exclude("gles2-failures.txt"),
102 exclude("gles2-temp-excluded.txt"),
104 MAIN_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [
106 Configuration(name = "master",
107 glconfig = "rgba8888d24s8ms0",
108 rotation = "unspecified",
109 surfacetype = "window",
111 filters = MAIN_GLES2_COMMON_FILTERS,
113 runByDefault = False),
114 Configuration(name = "master-2020-03-01",
115 glconfig = "rgba8888d24s8ms0",
116 rotation = "unspecified",
117 surfacetype = "window",
119 filters = [include("gles2-master-2020-03-01.txt")],
121 Configuration(name = "master-2021-03-01",
122 glconfig = "rgba8888d24s8ms0",
123 rotation = "unspecified",
124 surfacetype = "window",
126 filters = [include("gles2-master-2021-03-01.txt")],
128 Configuration(name = "master-2022-03-01",
129 glconfig = "rgba8888d24s8ms0",
130 rotation = "unspecified",
131 surfacetype = "window",
133 filters = MAIN_GLES2_COMMON_FILTERS + [exclude("gles2-master-2020-03-01.txt"), exclude("gles2-master-2021-03-01.txt")],
137 MAIN_GLES3_COMMON_FILTERS = [
138 include("gles3-master.txt"),
139 exclude("gles3-hw-issues.txt"),
140 exclude("gles3-driver-issues.txt"),
141 exclude("gles3-test-issues.txt"),
142 exclude("gles3-spec-issues.txt"),
143 exclude("gles3-temp-excluded.txt"),
144 exclude("gles3-waivers.txt"),
146 MAIN_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
148 Configuration(name = "master",
149 glconfig = "rgba8888d24s8ms0",
150 rotation = "unspecified",
151 surfacetype = "window",
153 filters = MAIN_GLES3_COMMON_FILTERS,
155 runByDefault = False),
156 Configuration(name = "master-2020-03-01",
157 glconfig = "rgba8888d24s8ms0",
158 rotation = "unspecified",
159 surfacetype = "window",
161 filters = [include("gles3-master-2020-03-01.txt")],
163 Configuration(name = "master-2021-03-01",
164 glconfig = "rgba8888d24s8ms0",
165 rotation = "unspecified",
166 surfacetype = "window",
168 filters = [include("gles3-master-2021-03-01.txt")],
170 Configuration(name = "master-2022-03-01",
171 glconfig = "rgba8888d24s8ms0",
172 rotation = "unspecified",
173 surfacetype = "window",
175 filters = MAIN_GLES3_COMMON_FILTERS + [exclude("gles3-master-2020-03-01.txt"), exclude("gles3-master-2021-03-01.txt")],
178 Configuration(name = "rotate-portrait",
179 glconfig = "rgba8888d24s8ms0",
181 surfacetype = "window",
182 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
184 Configuration(name = "rotate-landscape",
185 glconfig = "rgba8888d24s8ms0",
187 surfacetype = "window",
188 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
190 Configuration(name = "rotate-reverse-portrait",
191 glconfig = "rgba8888d24s8ms0",
193 surfacetype = "window",
194 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
196 Configuration(name = "rotate-reverse-landscape",
197 glconfig = "rgba8888d24s8ms0",
199 surfacetype = "window",
200 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
204 Configuration(name = "multisample",
205 glconfig = "rgba8888d24s8ms4",
206 rotation = "unspecified",
207 surfacetype = "window",
208 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
209 exclude("gles3-multisample-issues.txt")],
213 Configuration(name = "565-no-depth-no-stencil",
214 glconfig = "rgb565d0s0ms0",
215 rotation = "unspecified",
216 surfacetype = "window",
217 filters = MAIN_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
218 exclude("gles3-pixelformat-issues.txt")],
221 Configuration(name = "incremental-deqp",
222 filters = [include("gles3-incremental-deqp.txt")],
224 runByDefault = False),
227 MAIN_GLES31_COMMON_FILTERS = [
228 include("gles31-master.txt"),
229 exclude("gles31-hw-issues.txt"),
230 exclude("gles31-driver-issues.txt"),
231 exclude("gles31-test-issues.txt"),
232 exclude("gles31-spec-issues.txt"),
233 exclude("gles31-temp-excluded.txt"),
234 exclude("gles31-waivers.txt"),
236 MAIN_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
238 Configuration(name = "master",
239 glconfig = "rgba8888d24s8ms0",
240 rotation = "unspecified",
241 surfacetype = "window",
243 filters = MAIN_GLES31_COMMON_FILTERS,
245 runByDefault = False),
246 Configuration(name = "master-2020-03-01",
247 glconfig = "rgba8888d24s8ms0",
248 rotation = "unspecified",
249 surfacetype = "window",
251 filters = [include("gles31-master-2020-03-01.txt")],
253 Configuration(name = "master-2021-03-01",
254 glconfig = "rgba8888d24s8ms0",
255 rotation = "unspecified",
256 surfacetype = "window",
258 filters = [include("gles31-master-2021-03-01.txt")],
260 Configuration(name = "master-2022-03-01",
261 glconfig = "rgba8888d24s8ms0",
262 rotation = "unspecified",
263 surfacetype = "window",
265 filters = MAIN_GLES31_COMMON_FILTERS + [exclude("gles31-master-2020-03-01.txt"), exclude("gles31-master-2021-03-01.txt")],
269 Configuration(name = "rotate-portrait",
270 glconfig = "rgba8888d24s8ms0",
272 surfacetype = "window",
273 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
275 Configuration(name = "rotate-landscape",
276 glconfig = "rgba8888d24s8ms0",
278 surfacetype = "window",
279 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
281 Configuration(name = "rotate-reverse-portrait",
282 glconfig = "rgba8888d24s8ms0",
284 surfacetype = "window",
285 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
287 Configuration(name = "rotate-reverse-landscape",
288 glconfig = "rgba8888d24s8ms0",
290 surfacetype = "window",
291 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
295 Configuration(name = "multisample",
296 glconfig = "rgba8888d24s8ms4",
297 rotation = "unspecified",
298 surfacetype = "window",
299 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
303 Configuration(name = "565-no-depth-no-stencil",
304 glconfig = "rgb565d0s0ms0",
305 rotation = "unspecified",
306 surfacetype = "window",
307 filters = MAIN_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
311 MAIN_VULKAN_FILTERS = [
312 include("vk-master.txt"),
313 exclude("vk-not-applicable.txt"),
314 exclude("vk-excluded-tests.txt"),
315 exclude("vk-test-issues.txt"),
316 exclude("vk-waivers.txt"),
317 exclude("vk-temp-excluded.txt"),
319 MAIN_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [
320 Configuration(name = "master",
321 filters = MAIN_VULKAN_FILTERS,
323 runByDefault = False,
324 listOfGroupsToSplit = ["dEQP-VK", "dEQP-VK.pipeline"]),
325 Configuration(name = "master-2019-03-01",
326 filters = [include("vk-master-2019-03-01.txt")],
328 listOfGroupsToSplit = ["dEQP-VK"]),
329 Configuration(name = "master-2020-03-01",
330 filters = [include("vk-master-2020-03-01.txt")],
332 listOfGroupsToSplit = ["dEQP-VK"]),
333 Configuration(name = "master-2021-03-01",
334 filters = [include("vk-master-2021-03-01.txt")],
336 listOfGroupsToSplit = ["dEQP-VK"]),
337 Configuration(name = "master-2022-03-01",
338 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")],
340 listOfGroupsToSplit = ["dEQP-VK"]),
341 Configuration(name = "incremental-deqp",
342 filters = [include("vk-incremental-deqp.txt")],
344 runByDefault = False,
345 listOfGroupsToSplit = ["dEQP-VK"]),
348 MAIN_VULKANSC_FILTERS = [
349 include("vksc-master.txt"),
351 MAIN_VULKANSC_PKG = Package(module = VULKANSC_MODULE, configurations = [
352 Configuration(name = "main",
353 filters = MAIN_VULKANSC_FILTERS,
355 runByDefault = False,
356 listOfGroupsToSplit = ["dEQP-VKSC"]),
360 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])
363 if __name__ == "__main__":
364 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())