Commit b4b55db2 authored by machenbach's avatar machenbach Committed by Commit bot

Revert of [test] Move test262-es6 into test262. (patchset #2 id:20001 of...

Revert of [test] Move test262-es6 into test262. (patchset #2 id:20001 of https://codereview.chromium.org/1215303008/)

Reason for revert:
[Sheriff] Breaks test262 on mac

Original issue's description:
> [test] Move test262-es6 into test262.
>
> BUG=v8:4254
> LOG=n
>
> Committed: https://crrev.com/aaa457b26f6c0f624cf5887e60dc497f6dccabae
> Cr-Commit-Position: refs/heads/master@{#29479}

TBR=rossberg@chromium.org,arv@chromium.org,littledan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4254

Review URL: https://codereview.chromium.org/1227503002

Cr-Commit-Position: refs/heads/master@{#29483}
parent 8ad31354
...@@ -4,13 +4,13 @@ tests from ...@@ -4,13 +4,13 @@ tests from
https://github.com/tc39/test262 https://github.com/tc39/test262
at hash 488c0a7 (2015/06/11 revision) as 'data' in this directory. Using later at revision 365 (hash fbba29f) as 'data' in this directory. Using later
version may be possible but the tests are only known to pass (and indeed run) version may be possible but the tests are only known to pass (and indeed run)
with that revision. with that revision.
git clone https://github.com/tc39/test262 data git clone https://github.com/tc39/test262 data
cd data cd data
git checkout 488c0a7 git checkout fbba29f
If you do update to a newer revision you may have to change the test If you do update to a newer revision you may have to change the test
harness adapter code since it uses internal functionality from the harness adapter code since it uses internal functionality from the
......
...@@ -80,12 +80,3 @@ var ES5Harness = (function() { ...@@ -80,12 +80,3 @@ var ES5Harness = (function() {
registerTest: registerTest registerTest: registerTest
} }
})(); })();
function $DONE(arg){
if (arg) {
print('FAILED! Error: ' + arg);
quit(1);
}
quit(0);
};
This diff is collapsed.
...@@ -31,33 +31,29 @@ import os ...@@ -31,33 +31,29 @@ import os
import shutil import shutil
import sys import sys
import tarfile import tarfile
import imp
from testrunner.local import statusfile
from testrunner.local import testsuite from testrunner.local import testsuite
from testrunner.local import utils from testrunner.local import utils
from testrunner.objects import testcase from testrunner.objects import testcase
# The revision hash needs to be 7 characters?
TEST_262_ARCHIVE_REVISION = "488c0a7" # This is the 2015-06-11 revision. TEST_262_ARCHIVE_REVISION = "fbba29f" # This is the r365 revision.
TEST_262_ARCHIVE_MD5 = "f7d4ec9be81f1e1f10fd8a61c71baead" TEST_262_ARCHIVE_MD5 = "e1ff0db438cc12de8fb6da80621b4ef6"
TEST_262_URL = "https://github.com/tc39/test262/tarball/%s" TEST_262_URL = "https://github.com/tc39/test262/tarball/%s"
TEST_262_HARNESS_FILES = ["sta.js", "assert.js"] TEST_262_HARNESS = ["sta.js", "testBuiltInObject.js", "testIntl.js"]
TEST_262_SUITE_PATH = ["data", "test"]
TEST_262_HARNESS_PATH = ["data", "harness"]
TEST_262_TOOLS_PATH = ["data", "tools", "packaging"]
class Test262TestSuite(testsuite.TestSuite): class Test262TestSuite(testsuite.TestSuite):
def __init__(self, name, root): def __init__(self, name, root):
super(Test262TestSuite, self).__init__(name, root) super(Test262TestSuite, self).__init__(name, root)
self.testroot = os.path.join(self.root, *TEST_262_SUITE_PATH) self.testroot = os.path.join(root, "data", "test", "suite")
self.harnesspath = os.path.join(self.root, *TEST_262_HARNESS_PATH) self.harness = [os.path.join(self.root, "data", "test", "harness", f)
self.harness = [os.path.join(self.harnesspath, f) for f in TEST_262_HARNESS]
for f in TEST_262_HARNESS_FILES]
self.harness += [os.path.join(self.root, "harness-adapt.js")] self.harness += [os.path.join(self.root, "harness-adapt.js")]
self.ParseTestRecord = None
def CommonTestName(self, testcase):
return testcase.path.split(os.path.sep)[-1]
def ListTests(self, context): def ListTests(self, context):
tests = [] tests = []
...@@ -78,89 +74,27 @@ class Test262TestSuite(testsuite.TestSuite): ...@@ -78,89 +74,27 @@ class Test262TestSuite(testsuite.TestSuite):
def GetFlagsForTestCase(self, testcase, context): def GetFlagsForTestCase(self, testcase, context):
return (testcase.flags + context.mode_flags + self.harness + return (testcase.flags + context.mode_flags + self.harness +
self.GetIncludesForTest(testcase) + ["--harmony"] +
[os.path.join(self.testroot, testcase.path + ".js")]) [os.path.join(self.testroot, testcase.path + ".js")])
def VariantFlags(self, testcase, default_flags):
flags = super(Test262TestSuite, self).VariantFlags(testcase, default_flags)
test_record = self.GetTestRecord(testcase)
if "noStrict" in test_record:
return flags
strict_flags = [f + ["--use-strict"] for f in flags]
if "onlyStrict" in test_record:
return strict_flags
return flags + strict_flags
def LoadParseTestRecord(self):
if not self.ParseTestRecord:
root = os.path.join(self.root, *TEST_262_TOOLS_PATH)
f = None
try:
(f, pathname, description) = imp.find_module("parseTestRecord", [root])
module = imp.load_module("parseTestRecord", f, pathname, description)
self.ParseTestRecord = module.parseTestRecord
except:
raise ImportError("Cannot load parseTestRecord; you may need to "
"--download-data for test262")
finally:
if f:
f.close()
return self.ParseTestRecord
def GetTestRecord(self, testcase):
if not hasattr(testcase, "test_record"):
ParseTestRecord = self.LoadParseTestRecord()
testcase.test_record = ParseTestRecord(self.GetSourceForTest(testcase),
testcase.path)
return testcase.test_record
def GetIncludesForTest(self, testcase):
test_record = self.GetTestRecord(testcase)
if "includes" in test_record:
includes = [os.path.join(self.harnesspath, f)
for f in test_record["includes"]]
else:
includes = []
return includes
def GetSourceForTest(self, testcase): def GetSourceForTest(self, testcase):
filename = os.path.join(self.testroot, testcase.path + ".js") filename = os.path.join(self.testroot, testcase.path + ".js")
with open(filename) as f: with open(filename) as f:
return f.read() return f.read()
def IsNegativeTest(self, testcase): def IsNegativeTest(self, testcase):
test_record = self.GetTestRecord(testcase) return "@negative" in self.GetSourceForTest(testcase)
return "negative" in test_record
def IsFailureOutput(self, output, testpath): def IsFailureOutput(self, output, testpath):
if output.exit_code != 0: if output.exit_code != 0:
return True return True
return "FAILED!" in output.stdout return "FAILED!" in output.stdout
def HasUnexpectedOutput(self, testcase):
outcome = self.GetOutcome(testcase)
if (statusfile.FAIL_SLOPPY in testcase.outcomes and
"--use-strict" not in testcase.flags):
return outcome != statusfile.FAIL
return not outcome in (testcase.outcomes or [statusfile.PASS])
def DownloadData(self): def DownloadData(self):
revision = TEST_262_ARCHIVE_REVISION revision = TEST_262_ARCHIVE_REVISION
archive_url = TEST_262_URL % revision archive_url = TEST_262_URL % revision
archive_name = os.path.join(self.root, "tc39-test262-%s.tar.gz" % revision) archive_name = os.path.join(self.root, "tc39-test262-%s.tar.gz" % revision)
directory_name = os.path.join(self.root, "data") directory_name = os.path.join(self.root, "data")
directory_old_name = os.path.join(self.root, "data.old") directory_old_name = os.path.join(self.root, "data.old")
# 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("tc39-test262-")]
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:
os.remove(os.path.join(self.root, f))
if not os.path.exists(archive_name): if not os.path.exists(archive_name):
print "Downloading test data from %s ..." % archive_url print "Downloading test data from %s ..." % archive_url
utils.URLRetrieve(archive_url, archive_name) utils.URLRetrieve(archive_url, archive_name)
...@@ -174,11 +108,9 @@ class Test262TestSuite(testsuite.TestSuite): ...@@ -174,11 +108,9 @@ class Test262TestSuite(testsuite.TestSuite):
with open(archive_name, "rb") as f: with open(archive_name, "rb") as f:
for chunk in iter(lambda: f.read(8192), ""): for chunk in iter(lambda: f.read(8192), ""):
md5.update(chunk) md5.update(chunk)
print "MD5 hash is %s" % md5.hexdigest()
if md5.hexdigest() != TEST_262_ARCHIVE_MD5: if md5.hexdigest() != TEST_262_ARCHIVE_MD5:
os.remove(archive_name) os.remove(archive_name)
print "MD5 expected %s" % TEST_262_ARCHIVE_MD5 raise Exception("Hash mismatch of test data file")
raise Exception("MD5 hash mismatch of test data file")
archive = tarfile.open(archive_name, "r:gz") archive = tarfile.open(archive_name, "r:gz")
if sys.platform in ("win32", "cygwin"): if sys.platform in ("win32", "cygwin"):
# Magic incantation to allow longer path names on Windows. # Magic incantation to allow longer path names on Windows.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment