Index: test/test262/testcfg.py |
diff --git a/test/test262/testcfg.py b/test/test262/testcfg.py |
index 875a4e5eda5f2c3add7aa504d7f3e3bbfb6180f3..c394cc8a5fade3a958b8807388691570577943ec 100644 |
--- a/test/test262/testcfg.py |
+++ b/test/test262/testcfg.py |
@@ -26,107 +26,19 @@ |
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-import hashlib |
+import test |
import os |
+from os.path import join, exists |
+import urllib |
+import hashlib |
import sys |
import tarfile |
-import urllib |
- |
-from testrunner.local import testsuite |
-from testrunner.objects import testcase |
- |
- |
-TEST_262_ARCHIVE_REVISION = "fb327c439e20" # This is the r334 revision. |
-TEST_262_ARCHIVE_MD5 = "307acd166ec34629592f240dc12d57ed" |
-TEST_262_URL = "http://hg.ecmascript.org/tests/test262/archive/%s.tar.bz2" |
-TEST_262_HARNESS = ["sta.js"] |
- |
- |
-class Test262TestSuite(testsuite.TestSuite): |
- |
- def __init__(self, name, root): |
- super(Test262TestSuite, self).__init__(name, root) |
- self.testroot = os.path.join(root, "data", "test", "suite") |
- self.harness = [os.path.join(self.root, "data", "test", "harness", f) |
- for f in TEST_262_HARNESS] |
- self.harness += [os.path.join(self.root, "harness-adapt.js")] |
- |
- def CommonTestName(self, testcase): |
- return testcase.path.split(os.path.sep)[-1] |
- def ListTests(self, context): |
- tests = [] |
- for dirname, dirs, files in os.walk(self.testroot): |
- for dotted in [x for x in dirs if x.startswith(".")]: |
- dirs.remove(dotted) |
- dirs.sort() |
- files.sort() |
- for filename in files: |
- if filename.endswith(".js"): |
- testname = os.path.join(dirname[len(self.testroot) + 1:], |
- filename[:-3]) |
- case = testcase.TestCase(self, testname) |
- tests.append(case) |
- return tests |
- |
- def GetFlagsForTestCase(self, testcase, context): |
- return (testcase.flags + context.mode_flags + self.harness + |
- [os.path.join(self.testroot, testcase.path + ".js")]) |
- |
- def GetSourceForTest(self, testcase): |
- filename = os.path.join(self.testroot, testcase.path + ".js") |
- with open(filename) as f: |
- return f.read() |
- |
- def IsNegativeTest(self, testcase): |
- return "@negative" in self.GetSourceForTest(testcase) |
- |
- def IsFailureOutput(self, output, testpath): |
- if output.exit_code != 0: |
- return True |
- return "FAILED!" in output.stdout |
- def DownloadData(self): |
- revision = TEST_262_ARCHIVE_REVISION |
- archive_url = TEST_262_URL % revision |
- archive_name = os.path.join(self.root, "test262-%s.tar.bz2" % revision) |
- directory_name = os.path.join(self.root, "data") |
- directory_old_name = os.path.join(self.root, "data.old") |
- if not os.path.exists(archive_name): |
- print "Downloading test data from %s ..." % archive_url |
- urllib.urlretrieve(archive_url, archive_name) |
- if os.path.exists(directory_name): |
- os.rename(directory_name, directory_old_name) |
- if not os.path.exists(directory_name): |
- print "Extracting test262-%s.tar.bz2 ..." % revision |
- md5 = hashlib.md5() |
- with open(archive_name, "rb") as f: |
- for chunk in iter(lambda: f.read(8192), ""): |
- md5.update(chunk) |
- if md5.hexdigest() != TEST_262_ARCHIVE_MD5: |
- os.remove(archive_name) |
- raise Exception("Hash mismatch of test data file") |
- archive = tarfile.open(archive_name, "r:bz2") |
- if sys.platform in ("win32", "cygwin"): |
- # Magic incantation to allow longer path names on Windows. |
- archive.extractall(u"\\\\?\\%s" % self.root) |
- else: |
- archive.extractall(self.root) |
- os.rename(os.path.join(self.root, "test262-%s" % revision), |
- directory_name) |
- |
- |
-def GetSuite(name, root): |
- return Test262TestSuite(name, root) |
- |
- |
-# Deprecated definitions below. |
-# TODO(jkummerow): Remove when SCons is no longer supported. |
- |
- |
-from os.path import exists |
-from os.path import join |
-import test |
+TEST_262_ARCHIVE_REVISION = 'fb327c439e20' # This is the r334 revision. |
+TEST_262_ARCHIVE_MD5 = '307acd166ec34629592f240dc12d57ed' |
+TEST_262_URL = 'http://hg.ecmascript.org/tests/test262/archive/%s.tar.bz2' |
+TEST_262_HARNESS = ['sta.js'] |
class Test262TestCase(test.TestCase): |