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
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 MASTER_EGL_COMMON_FILTERS = [include("egl-master.txt"),
203 exclude("egl-test-issues.txt"),
204 exclude("egl-internal-api-tests.txt")]
205 MASTER_EGL_PKG = Package(module = EGL_MODULE, configurations = [
207 Configuration(name = "master",
208 glconfig = "rgba8888d24s8ms0",
209 rotation = "unspecified",
210 surfacetype = "window",
212 filters = MASTER_EGL_COMMON_FILTERS,
216 MASTER_GLES2_COMMON_FILTERS = [
217 include("gles2-master.txt"),
218 exclude("gles2-test-issues.txt"),
219 exclude("gles2-failures.txt")
221 MASTER_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [
223 Configuration(name = "master",
224 glconfig = "rgba8888d24s8ms0",
225 rotation = "unspecified",
226 surfacetype = "window",
228 filters = MASTER_GLES2_COMMON_FILTERS,
232 MASTER_GLES3_COMMON_FILTERS = [
233 include("gles3-master.txt"),
234 exclude("gles3-hw-issues.txt"),
235 exclude("gles3-driver-issues.txt"),
236 exclude("gles3-test-issues.txt"),
237 exclude("gles3-spec-issues.txt")
239 MASTER_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
241 Configuration(name = "master",
242 glconfig = "rgba8888d24s8ms0",
243 rotation = "unspecified",
244 surfacetype = "window",
246 filters = MASTER_GLES3_COMMON_FILTERS,
249 Configuration(name = "rotate-portrait",
250 glconfig = "rgba8888d24s8ms0",
252 surfacetype = "window",
253 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
255 Configuration(name = "rotate-landscape",
256 glconfig = "rgba8888d24s8ms0",
258 surfacetype = "window",
259 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
261 Configuration(name = "rotate-reverse-portrait",
262 glconfig = "rgba8888d24s8ms0",
264 surfacetype = "window",
265 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
267 Configuration(name = "rotate-reverse-landscape",
268 glconfig = "rgba8888d24s8ms0",
270 surfacetype = "window",
271 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
275 Configuration(name = "multisample",
276 glconfig = "rgba8888d24s8ms4",
277 rotation = "unspecified",
278 surfacetype = "window",
279 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
280 exclude("gles3-multisample-issues.txt")],
284 Configuration(name = "565-no-depth-no-stencil",
285 glconfig = "rgb565d0s0ms0",
286 rotation = "unspecified",
287 surfacetype = "window",
288 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
289 exclude("gles3-pixelformat-issues.txt")],
293 MASTER_GLES31_COMMON_FILTERS = [
294 include("gles31-master.txt"),
295 exclude("gles31-hw-issues.txt"),
296 exclude("gles31-driver-issues.txt"),
297 exclude("gles31-test-issues.txt"),
298 exclude("gles31-spec-issues.txt"),
300 MASTER_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
302 Configuration(name = "master",
303 glconfig = "rgba8888d24s8ms0",
304 rotation = "unspecified",
305 surfacetype = "window",
307 filters = MASTER_GLES31_COMMON_FILTERS,
311 Configuration(name = "rotate-portrait",
312 glconfig = "rgba8888d24s8ms0",
314 surfacetype = "window",
315 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
317 Configuration(name = "rotate-landscape",
318 glconfig = "rgba8888d24s8ms0",
320 surfacetype = "window",
321 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
323 Configuration(name = "rotate-reverse-portrait",
324 glconfig = "rgba8888d24s8ms0",
326 surfacetype = "window",
327 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
329 Configuration(name = "rotate-reverse-landscape",
330 glconfig = "rgba8888d24s8ms0",
332 surfacetype = "window",
333 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
337 Configuration(name = "multisample",
338 glconfig = "rgba8888d24s8ms4",
339 rotation = "unspecified",
340 surfacetype = "window",
341 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
345 Configuration(name = "565-no-depth-no-stencil",
346 glconfig = "rgb565d0s0ms0",
347 rotation = "unspecified",
348 surfacetype = "window",
349 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
353 MASTER_VULKAN_FILTERS = [
354 include("vulkan-master.txt"),
355 exclude("vulkan-not-applicable.txt"),
356 exclude("vulkan-test-issues.txt"),
357 exclude("vulkan-hw-issues.txt")
359 MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [
360 Configuration(name = "master",
361 filters = MASTER_VULKAN_FILTERS,
366 Mustpass(project = CTS_PROJECT, version = "lmp", packages = [LMP_GLES3_PKG, LMP_GLES31_PKG]),
367 Mustpass(project = CTS_PROJECT, version = "lmp-mr1", packages = [LMP_MR1_GLES3_PKG, LMP_MR1_GLES31_PKG]),
368 Mustpass(project = CTS_PROJECT, version = "mnc", packages = [MNC_EGL_PKG, MNC_GLES2_PKG, MNC_GLES3_PKG, MNC_GLES31_PKG]),
369 Mustpass(project = CTS_PROJECT, version = "master", packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
372 BUILD_CONFIG = getBuildConfig(DEFAULT_BUILD_DIR, DEFAULT_TARGET, "Debug")
374 if __name__ == "__main__":
375 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, BUILD_CONFIG)