lin
2025-07-30 fcd736bf35fd93b563e9bbf594f2aa7b62028cc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# -*- coding: utf-8 -*-
 
#-------------------------------------------------------------------------
# Vulkan CTS
# ----------
#
# Copyright (c) 2016 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#-------------------------------------------------------------------------
 
import os
from fnmatch import fnmatch
 
STATEMENT_PATTERN    = "STATEMENT-*"
TEST_LOG_PATTERN    = "*.qpa"
GIT_STATUS_PATTERN    = "*git-status.txt"
GIT_LOG_PATTERN        = "*git-log.txt"
PATCH_PATTERN        = "*.patch"
SUMMARY_PATTERN        = "cts-run-summary.xml"
 
class PackageDescription:
   def __init__ (self, basePath, statement, testLogs, gitStatus, gitLog, patches, summary, conformVersion, conformOs, otherItems):
       self.basePath        = basePath
       self.statement        = statement
       self.testLogs        = testLogs
       self.gitStatus        = gitStatus
       self.gitLog            = gitLog
       self.patches        = patches
       self.summary        = summary
       self.otherItems        = otherItems
       self.conformVersion    = conformVersion
       self.conformOs        = conformOs
 
def getPackageDescription (packagePath):
   allItems    = os.listdir(packagePath)
   statement    = None
   testLogs    = []
   gitStatus    = []
   gitLog        = []
   patches        = []
   summary        = None
   otherItems    = []
   conformVersion    = None
   conformOs        = None
 
   for item in allItems:
       if fnmatch(item, STATEMENT_PATTERN):
           assert statement == None
           statement = item
       elif fnmatch(item, TEST_LOG_PATTERN):
           testLogs.append(item)
       elif fnmatch(item, GIT_STATUS_PATTERN):
           gitStatus.append(item)
       elif fnmatch(item, GIT_LOG_PATTERN):
           gitLog.append((item, '.'))
       elif fnmatch(item, PATCH_PATTERN):
           patches.append(item)
       elif fnmatch(item, SUMMARY_PATTERN):
           assert summary == None
           summary = item
       else:
           otherItems.append(item)
 
   return PackageDescription(packagePath, statement, testLogs, gitStatus, gitLog, patches, summary, conformVersion, conformOs, otherItems)