Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
[platform/upstream/VK-GL-CTS.git] / scripts / build_android_mustpass.py
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
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
27
28 import os
29
30 COPYRIGHT_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
46 CTS_DATA_DIR                                    = os.path.join(DEQP_DIR, "android", "cts")
47
48 CTS_PROJECT                                             = Project(path = CTS_DATA_DIR, copyright = COPYRIGHT_DECLARATION)
49
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
56 # Master
57
58 MASTER_EGL_COMMON_FILTERS               = [include("egl-master.txt"),
59                                                                    exclude("egl-test-issues.txt"),
60                                                                    exclude("egl-internal-api-tests.txt"),
61                                                                    exclude("egl-manual-robustness.txt"),
62                                                                    exclude("egl-driver-issues.txt"),
63                                                                    exclude("egl-temp-excluded.txt")]
64 MASTER_EGL_PKG                                  = Package(module = EGL_MODULE, configurations = [
65                 # Master
66                 Configuration(name                      = "master",
67                                           glconfig              = "rgba8888d24s8ms0",
68                                           rotation              = "unspecified",
69                                           surfacetype   = "window",
70                                           required              = True,
71                                           filters               = MASTER_EGL_COMMON_FILTERS,
72                                       runtime           = "23m"),
73                 # Risky subset
74                 Configuration(name                      = "master-risky",
75                                           glconfig              = "rgba8888d24s8ms0",
76                                           rotation              = "unspecified",
77                                           surfacetype   = "window",
78                                           required              = True,
79                                           filters               = [include("egl-temp-excluded.txt")],
80                                       runtime           = "2m"),
81         ])
82
83 MASTER_GLES2_COMMON_FILTERS             = [
84                 include("gles2-master.txt"),
85                 exclude("gles2-test-issues.txt"),
86                 exclude("gles2-failures.txt"),
87                 exclude("gles2-temp-excluded.txt"),
88         ]
89 MASTER_GLES2_PKG                                = Package(module = GLES2_MODULE, configurations = [
90                 # Master
91                 Configuration(name                      = "master",
92                                           glconfig              = "rgba8888d24s8ms0",
93                                           rotation              = "unspecified",
94                                           surfacetype   = "window",
95                                           required              = True,
96                                           filters               = MASTER_GLES2_COMMON_FILTERS,
97                                           runtime               = "46m"),
98                 # Risky subset
99                 Configuration(name                      = "master-risky",
100                                           glconfig              = "rgba8888d24s8ms0",
101                                           rotation              = "unspecified",
102                                           surfacetype   = "window",
103                                           filters               = [include("gles2-temp-excluded.txt")],
104                                           runtime               = "10m"),
105         ])
106
107 MASTER_GLES3_COMMON_FILTERS             = [
108                 include("gles3-master.txt"),
109                 exclude("gles3-hw-issues.txt"),
110                 exclude("gles3-driver-issues.txt"),
111                 exclude("gles3-test-issues.txt"),
112                 exclude("gles3-spec-issues.txt"),
113                 exclude("gles3-temp-excluded.txt"),
114         ]
115 MASTER_GLES3_PKG                                = Package(module = GLES3_MODULE, configurations = [
116                 # Master
117                 Configuration(name                      = "master",
118                                           glconfig              = "rgba8888d24s8ms0",
119                                           rotation              = "unspecified",
120                                           surfacetype   = "window",
121                                           required              = True,
122                                           filters               = MASTER_GLES3_COMMON_FILTERS,
123                                           runtime               = "1h50m"),
124                 # Risky subset
125                 Configuration(name                      = "master-risky",
126                                           glconfig              = "rgba8888d24s8ms0",
127                                           rotation              = "unspecified",
128                                           surfacetype   = "window",
129                                           filters               = [include("gles3-temp-excluded.txt")],
130                                           runtime               = "10m"),
131                 # Rotations
132                 Configuration(name                      = "rotate-portrait",
133                                           glconfig              = "rgba8888d24s8ms0",
134                                           rotation              = "0",
135                                           surfacetype   = "window",
136                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
137                                           runtime               = "1m"),
138                 Configuration(name                      = "rotate-landscape",
139                                           glconfig              = "rgba8888d24s8ms0",
140                                           rotation              = "90",
141                                           surfacetype   = "window",
142                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
143                                           runtime               = "1m"),
144                 Configuration(name                      = "rotate-reverse-portrait",
145                                           glconfig              = "rgba8888d24s8ms0",
146                                           rotation              = "180",
147                                           surfacetype   = "window",
148                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
149                                           runtime               = "1m"),
150                 Configuration(name                      = "rotate-reverse-landscape",
151                                           glconfig              = "rgba8888d24s8ms0",
152                                           rotation              = "270",
153                                           surfacetype   = "window",
154                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
155                                           runtime               = "1m"),
156
157                 # MSAA
158                 Configuration(name                      = "multisample",
159                                           glconfig              = "rgba8888d24s8ms4",
160                                           rotation              = "unspecified",
161                                           surfacetype   = "window",
162                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
163                                                                                                                                          exclude("gles3-multisample-issues.txt")],
164                                           runtime               = "1m"),
165
166                 # Pixel format
167                 Configuration(name                      = "565-no-depth-no-stencil",
168                                           glconfig              = "rgb565d0s0ms0",
169                                           rotation              = "unspecified",
170                                           surfacetype   = "window",
171                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
172                                                                                                                                          exclude("gles3-pixelformat-issues.txt")],
173                                           runtime               = "1m"),
174         ])
175
176 MASTER_GLES31_COMMON_FILTERS    = [
177                 include("gles31-master.txt"),
178                 exclude("gles31-hw-issues.txt"),
179                 exclude("gles31-driver-issues.txt"),
180                 exclude("gles31-test-issues.txt"),
181                 exclude("gles31-spec-issues.txt"),
182                 exclude("gles31-temp-excluded.txt"),
183         ]
184 MASTER_GLES31_PKG                               = Package(module = GLES31_MODULE, configurations = [
185                 # Master
186                 Configuration(name                      = "master",
187                                           glconfig              = "rgba8888d24s8ms0",
188                                           rotation              = "unspecified",
189                                           surfacetype   = "window",
190                                           required              = True,
191                                           filters               = MASTER_GLES31_COMMON_FILTERS,
192                                           runtime               = "1h40m"),
193                 # Risky subset
194                 Configuration(name                      = "master-risky",
195                                           glconfig              = "rgba8888d24s8ms0",
196                                           rotation              = "unspecified",
197                                           surfacetype   = "window",
198                                           filters               = [include("gles31-temp-excluded.txt")],
199                                           runtime               = "10m"),
200
201                 # Rotations
202                 Configuration(name                      = "rotate-portrait",
203                                           glconfig              = "rgba8888d24s8ms0",
204                                           rotation              = "0",
205                                           surfacetype   = "window",
206                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
207                                           runtime               = "1m30s"),
208                 Configuration(name                      = "rotate-landscape",
209                                           glconfig              = "rgba8888d24s8ms0",
210                                           rotation              = "90",
211                                           surfacetype   = "window",
212                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
213                                           runtime               = "1m30s"),
214                 Configuration(name                      = "rotate-reverse-portrait",
215                                           glconfig              = "rgba8888d24s8ms0",
216                                           rotation              = "180",
217                                           surfacetype   = "window",
218                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
219                                           runtime               = "1m30s"),
220                 Configuration(name                      = "rotate-reverse-landscape",
221                                           glconfig              = "rgba8888d24s8ms0",
222                                           rotation              = "270",
223                                           surfacetype   = "window",
224                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
225                                           runtime               = "1m30s"),
226
227                 # MSAA
228                 Configuration(name                      = "multisample",
229                                           glconfig              = "rgba8888d24s8ms4",
230                                           rotation              = "unspecified",
231                                           surfacetype   = "window",
232                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
233                                           runtime               = "2m"),
234
235                 # Pixel format
236                 Configuration(name                      = "565-no-depth-no-stencil",
237                                           glconfig              = "rgb565d0s0ms0",
238                                           rotation              = "unspecified",
239                                           surfacetype   = "window",
240                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
241                                           runtime               = "1m"),
242         ])
243
244 MASTER_VULKAN_FILTERS                   = [
245                 include("vk-master.txt"),
246                 exclude("vk-not-applicable.txt"),
247                 exclude("vk-excluded-tests.txt"),
248                 exclude("vk-test-issues.txt"),
249                 exclude("vk-waivers.txt"),
250                 exclude("vk-temp-excluded.txt"),
251         ]
252 MASTER_VULKAN_PKG                               = Package(module = VULKAN_MODULE, configurations = [
253                 Configuration(name                      = "master",
254                                           filters               = MASTER_VULKAN_FILTERS,
255                                           runtime               = "2h39m",
256                                           runByDefault          = False),
257                 Configuration(name                      = "master-2019-03-01",
258                                           filters               = [include("vk-master-2019-03-01.txt")],
259                                           runtime               = "2h29m"),
260                 Configuration(name                      = "master-2020-03-01",
261                                           filters               = MASTER_VULKAN_FILTERS + [exclude("vk-master-2019-03-01.txt")],
262                                           runtime               = "10m"),
263         ])
264
265 MUSTPASS_LISTS                          = [
266                 Mustpass(project = CTS_PROJECT, version = "master",             packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
267         ]
268
269 if __name__ == "__main__":
270         genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())