Enhance run-jsc-stress-tests to allow a test to specify test specific options require...
authormark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jun 2018 22:07:37 +0000 (22:07 +0000)
committermark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jun 2018 22:07:37 +0000 (22:07 +0000)
https://bugs.webkit.org/show_bug.cgi?id=186409
<rdar://problem/40909007>

Reviewed by Saam Barati.

Tools:

This is needed because some tests are written with specific features in mind, and
we may not necessarily want to enable that option for all tests.

We can now specify something like this at the top of a test file:
    //@ requireOptions("--useIntlPluralRules=true")

... and ensure that that test will be run with the --useIntlPluralRules=true
option for all test configurations that run the test.

* Scripts/run-jsc-stress-tests:

LayoutTests:

* js/script-tests/intl-pluralrules.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232603 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/js/script-tests/intl-pluralrules.js
Tools/ChangeLog
Tools/Scripts/run-jsc-stress-tests

index c37dc7e..b4d409a 100644 (file)
@@ -1,3 +1,13 @@
+2018-06-07  Mark Lam  <mark.lam@apple.com>
+
+        Enhance run-jsc-stress-tests to allow a test to specify test specific options required for it to run.
+        https://bugs.webkit.org/show_bug.cgi?id=186409
+        <rdar://problem/40909007>
+
+        Reviewed by Saam Barati.
+
+        * js/script-tests/intl-pluralrules.js:
+
 2018-06-07  Ryosuke Niwa  <rniwa@webkit.org>
 
         Release assert in Document::updateLayout() in WebPage::determinePrimarySnapshottedPlugIn()
index 289f611..3b92484 100644 (file)
@@ -1,4 +1,6 @@
 //@ skip if $hostOS == "windows" or $hostOS == "linux"
+//@ requireOptions("--useIntlPluralRules=true")
+
 description("This test checks the behavior of Intl.PluralRules as described in the ECMAScript Internationalization API Specification.");
 
 // https://tc39.github.io/ecma402/#pluralrules-objects
index 8286621..8df8c9f 100644 (file)
@@ -1,3 +1,22 @@
+2018-06-07  Mark Lam  <mark.lam@apple.com>
+
+        Enhance run-jsc-stress-tests to allow a test to specify test specific options required for it to run.
+        https://bugs.webkit.org/show_bug.cgi?id=186409
+        <rdar://problem/40909007>
+
+        Reviewed by Saam Barati.
+
+        This is needed because some tests are written with specific features in mind, and
+        we may not necessarily want to enable that option for all tests.
+
+        We can now specify something like this at the top of a test file:
+            //@ requireOptions("--useIntlPluralRules=true")
+
+        ... and ensure that that test will be run with the --useIntlPluralRules=true
+        option for all test configurations that run the test.
+
+        * Scripts/run-jsc-stress-tests:
+
 2018-06-07  Tim Horton  <timothy_horton@apple.com>
 
         REGRESSION (r232544): [iOS] TestWebKitAPI.WebKit.OverrideLayoutSizeChangesDuringAnimatedResizeSucceed is failing
index eb47063..5980c14 100755 (executable)
@@ -503,6 +503,7 @@ def pathToHelpers
 end
 
 $runCommandOptions = {}
+$testSpecificRequiredOptions = []
 
 $uniqueFilenameCounter = 0
 def uniqueFilename(extension)
@@ -572,8 +573,12 @@ def slow!
     $runCommandOptions[:isSlow] = true
 end
 
+def requireOptions(*options)
+    $testSpecificRequiredOptions += options
+end
+
 def runWithOutputHandler(kind, outputHandler, *options)
-    addRunCommand(kind, [pathToVM.to_s] + BASE_OPTIONS + options + [$benchmark.to_s], outputHandler, simpleErrorHandler)
+    addRunCommand(kind, [pathToVM.to_s] + BASE_OPTIONS + $testSpecificRequiredOptions + options + [$benchmark.to_s], outputHandler, simpleErrorHandler)
 end
 
 def run(kind, *options)
@@ -914,7 +919,7 @@ def runTest262(mode, exception, includeFiles, flags)
 
     prepareExtraRelativeFiles(includeFiles.map { |f| "../" + f }, $collection)
 
-    args = [pathToVM.to_s] + BASE_OPTIONS
+    args = [pathToVM.to_s] + BASE_OPTIONS + $testSpecificRequiredOptions
     args << "--exception=" + exception if failsWithException
     args << "--test262-async" if isAsync
     args += includeFiles
@@ -956,7 +961,7 @@ def prepareTest262Fixture
 end
 
 def runES6(mode)
-    args = [pathToVM.to_s] + BASE_OPTIONS + [$benchmark.to_s]
+    args = [pathToVM.to_s] + BASE_OPTIONS + $testSpecificRequiredOptions + [$benchmark.to_s]
     case mode
     when :normal
         errorHandler = simpleErrorHandler
@@ -1087,7 +1092,7 @@ def runChakra(mode, exception, baselineFile, extraFiles)
     prepareExtraAbsoluteFiles(CHAKRATESTS_PATH, ["jsc-lib.js"])
     prepareExtraRelativeFiles(extraFiles.map { |f| "../" + f }, $collection)
 
-    args = [pathToVM.to_s] + BASE_OPTIONS
+    args = [pathToVM.to_s] + BASE_OPTIONS + $testSpecificRequiredOptions
     args += FTL_OPTIONS if $isFTLPlatform
     args += EAGER_OPTIONS
     args << "--exception=" + exception if failsWithException
@@ -1128,7 +1133,7 @@ def runLayoutTest(kind, *options)
     prepareExtraRelativeFiles(["../#{testName}-expected.txt"], $benchmarkDirectory)
     prepareExtraAbsoluteFiles(LAYOUTTESTS_PATH, ["resources/standalone-pre.js", "resources/standalone-post.js"])
 
-    args = [pathToVM.to_s] + BASE_OPTIONS + options +
+    args = [pathToVM.to_s] + BASE_OPTIONS + $testSpecificRequiredOptions + options +
         [(Pathname.new("resources") + "standalone-pre.js").to_s,
          $benchmark.to_s,
          (Pathname.new("resources") + "standalone-post.js").to_s]
@@ -1268,7 +1273,7 @@ def runMozillaTest(kind, mode, extraFiles, *options)
         kind = "mozilla"
     end
     prepareExtraRelativeFiles(extraFiles.map{|v| (Pathname("..") + v).to_s}, $collection)
-    args = [pathToVM.to_s] + BASE_OPTIONS + options + extraFiles.map{|v| v.to_s} + [$benchmark.to_s]
+    args = [pathToVM.to_s] + BASE_OPTIONS + $testSpecificRequiredOptions + options + extraFiles.map{|v| v.to_s} + [$benchmark.to_s]
     case mode
     when :normal
         errorHandler = mozillaErrorHandler
@@ -1338,7 +1343,7 @@ def defaultRunMozillaTest(mode, *extraFiles)
 end
 
 def runNoisyTestImpl(kind, options, additionalEnv)
-    addRunCommand(kind, [pathToVM.to_s] + BASE_OPTIONS + options + [$benchmark.to_s], noisyOutputHandler, noisyErrorHandler, *additionalEnv)
+    addRunCommand(kind, [pathToVM.to_s] + BASE_OPTIONS + $testSpecificRequiredOptions + options + [$benchmark.to_s], noisyOutputHandler, noisyErrorHandler, *additionalEnv)
 end
 
 def runNoisyTest(kind, *options)
@@ -1536,6 +1541,7 @@ def handleCollectionDirectory(collection)
             $benchmark = path.basename
             
             $runCommandOptions = {}
+            $testSpecificRequiredOptions = []
             defaultRun unless parseRunCommands
         }
     }