| # -*- 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) |