From 0c53c66938fa59330f65f778f71bfce168704940 Mon Sep 17 00:00:00 2001 From: bradnelson Date: Tue, 21 Jul 2015 12:02:27 -0700 Subject: [PATCH] Make simdjs tests redownload on a revision change. LOG=N BUG=None TEST=manual,local R=bbudge@chromium.org,machenbach@chromium.org Review URL: https://codereview.chromium.org/1240453003 Cr-Commit-Position: refs/heads/master@{#29780} --- test/simdjs/testcfg.py | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/test/simdjs/testcfg.py b/test/simdjs/testcfg.py index c0390af..66f0cce 100644 --- a/test/simdjs/testcfg.py +++ b/test/simdjs/testcfg.py @@ -65,10 +65,44 @@ class SimdJsTestSuite(testsuite.TestSuite): def DownloadData(self): revision = SIMDJS_ARCHIVE_REVISION archive_url = SIMDJS_URL % revision + + archive_prefix = "ecmascript_simd-" archive_name = os.path.join( - self.root, "ecmascript_simd-%s.tar.gz" % revision) + self.root, "%s%s.tar.gz" % (archive_prefix, revision)) directory_name = os.path.join(self.root, "data") directory_old_name = os.path.join(self.root, "data.old") + versionfile = os.path.join(self.root, "CHECKED_OUT_VERSION") + + checked_out_version = None + checked_out_url = None + checked_out_revision = None + if os.path.exists(versionfile): + with open(versionfile) as f: + try: + (checked_out_version, + checked_out_url, + checked_out_revision) = f.read().splitlines() + except ValueError: + pass + if (checked_out_version != SIMDJS_ARCHIVE_MD5 or + checked_out_url != archive_url or + checked_out_revision != revision): + if os.path.exists(archive_name): + print "Clobbering %s because CHECK_OUT_VERSION is out of date" % ( + archive_name) + os.remove(archive_name) + + # Clobber if the test is in an outdated state, i.e. if there are any other + # archive files present. + archive_files = [f for f in os.listdir(self.root) + if f.startswith(archive_prefix)] + if (len(archive_files) > 1 or + os.path.basename(archive_name) not in archive_files): + print "Clobber outdated test archives ..." + for f in archive_files: + print "Removing %s" % f + os.remove(os.path.join(self.root, f)) + if not os.path.exists(archive_name): print "Downloading test data from %s ..." % archive_url utils.URLRetrieve(archive_url, archive_name) @@ -96,6 +130,11 @@ class SimdJsTestSuite(testsuite.TestSuite): os.rename(os.path.join(self.root, "ecmascript_simd-%s" % revision), directory_name) + with open(versionfile, "w") as f: + f.write(SIMDJS_ARCHIVE_MD5 + '\n') + f.write(archive_url + '\n') + f.write(revision + '\n') + def GetSuite(name, root): return SimdJsTestSuite(name, root) -- 2.7.4