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