Avoid watchdog timeout in Vulkan builtin precision tests
[platform/upstream/VK-GL-CTS.git] / external / fetch_sources.py
index d6f6333..2aa2b57 100644 (file)
@@ -65,9 +65,10 @@ class SourcePackage (Source):
                if not self.isArchiveUpToDate():
                        self.fetchAndVerifyArchive()
 
-               # \note No way to verify that extracted contents match archive, re-extract
-               Source.clean(self)
-               self.extract()
+               if self.getExtractedChecksum() != self.checksum:
+                       Source.clean(self)
+                       self.extract()
+                       self.storeExtractedChecksum(self.checksum)
 
        def removeArchives (self):
                archiveDir = os.path.join(EXTERNAL_DIR, pkg.baseDir, pkg.archiveDir)
@@ -81,6 +82,20 @@ class SourcePackage (Source):
                else:
                        return False
 
+       def getExtractedChecksumFilePath (self):
+               return os.path.join(EXTERNAL_DIR, pkg.baseDir, pkg.archiveDir, "extracted")
+
+       def getExtractedChecksum (self):
+               extractedChecksumFile = self.getExtractedChecksumFilePath()
+
+               if os.path.exists(extractedChecksumFile):
+                       return readFile(extractedChecksumFile)
+               else:
+                       return None
+
+       def storeExtractedChecksum (self, checksum):
+               writeFile(self.getExtractedChecksumFilePath(), checksum)
+
        def fetchAndVerifyArchive (self):
                print "Fetching %s" % self.url
 
@@ -170,12 +185,16 @@ PACKAGES = [
                postExtract = postExtractLibpng),
        GitRepo(
                "https://github.com/KhronosGroup/SPIRV-Tools.git",
-               "3e6b2dfa699b13987657298ab2a7652a0a577ca9",
+               "0b0454c42c6b6f6746434bd5c78c5c70f65d9c51",
                "spirv-tools"),
        GitRepo(
                "https://github.com/KhronosGroup/glslang.git",
-               "f5dcdf01230b504c340070d9938cd4b62b867f99",
+               "a5c5fb61180e8703ca85f36d618f98e16dc317e2",
                "glslang"),
+       GitRepo(
+               "https://github.com/KhronosGroup/SPIRV-Headers.git",
+               "2bf02308656f97898c5f7e433712f21737c61e4e",
+               "spirv-headers"),
 ]
 
 def parseArgs ():