Index: test/test262-es6/testcfg.py |
diff --git a/test/test262-es6/testcfg.py b/test/test262-es6/testcfg.py |
index 91491b3907f1c04c5e9d68ff388c8f2fae1f1362..5b257244cd0926579b1e08b84a99f73266ac7b59 100644 |
--- a/test/test262-es6/testcfg.py |
+++ b/test/test262-es6/testcfg.py |
@@ -48,6 +48,55 @@ TEST_262_SUITE_PATH = ["data", "test"] |
TEST_262_HARNESS_PATH = ["data", "harness"] |
TEST_262_TOOLS_PATH = ["data", "tools", "packaging"] |
+ALL_VARIANT_FLAGS_STRICT = dict( |
+ (v, [flags + ["--use-strict"] for flags in flag_sets]) |
+ for v, flag_sets in testsuite.ALL_VARIANT_FLAGS.iteritems() |
+) |
+ |
+FAST_VARIANT_FLAGS_STRICT = dict( |
+ (v, [flags + ["--use-strict"] for flags in flag_sets]) |
+ for v, flag_sets in testsuite.FAST_VARIANT_FLAGS.iteritems() |
+) |
+ |
+ALL_VARIANT_FLAGS_BOTH = dict( |
+ (v, [flags for flags in testsuite.ALL_VARIANT_FLAGS[v] + |
+ ALL_VARIANT_FLAGS_STRICT[v]]) |
+ for v in testsuite.ALL_VARIANT_FLAGS |
+) |
+ |
+FAST_VARIANT_FLAGS_BOTH = dict( |
+ (v, [flags for flags in testsuite.FAST_VARIANT_FLAGS[v] + |
+ FAST_VARIANT_FLAGS_STRICT[v]]) |
+ for v in testsuite.FAST_VARIANT_FLAGS |
+) |
+ |
+ALL_VARIANTS = { |
+ 'nostrict': testsuite.ALL_VARIANT_FLAGS, |
+ 'strict': ALL_VARIANT_FLAGS_STRICT, |
+ 'both': ALL_VARIANT_FLAGS_BOTH, |
+} |
+ |
+FAST_VARIANTS = { |
+ 'nostrict': testsuite.FAST_VARIANT_FLAGS, |
+ 'strict': FAST_VARIANT_FLAGS_STRICT, |
+ 'both': FAST_VARIANT_FLAGS_BOTH, |
+} |
+ |
+class Test262VariantGenerator(testsuite.VariantGenerator): |
+ def GetFlagSets(self, testcase, variant): |
+ if testcase.outcomes and statusfile.OnlyFastVariants(testcase.outcomes): |
+ variant_flags = FAST_VARIANTS |
+ else: |
+ variant_flags = ALL_VARIANTS |
+ |
+ test_record = self.suite.GetTestRecord(testcase) |
+ if "noStrict" in test_record: |
+ return variant_flags["nostrict"][variant] |
+ if "onlyStrict" in test_record: |
+ return variant_flags["strict"][variant] |
+ return variant_flags["both"][variant] |
+ |
+ |
class Test262TestSuite(testsuite.TestSuite): |
def __init__(self, name, root): |
@@ -81,15 +130,8 @@ class Test262TestSuite(testsuite.TestSuite): |
self.GetIncludesForTest(testcase) + ["--harmony"] + |
[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 _VariantGeneratorFactory(self): |
+ return Test262VariantGenerator |
def LoadParseTestRecord(self): |
if not self.ParseTestRecord: |