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