Title: [208692] trunk
Revision
208692
Author
[email protected]
Date
2016-11-14 10:27:41 -0800 (Mon, 14 Nov 2016)

Log Message

Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
https://bugs.webkit.org/show_bug.cgi?id=164695

Reviewed by Keith Miller.

JSTests:

Replace use of runMisc* test run configurations with equivalents.

* stress/licm-no-pre-header-nested.js:
* stress/licm-no-pre-header.js:
* stress/licm-pre-header-cannot-exit-nested.js:
* stress/licm-pre-header-cannot-exit.js:
* stress/make-dictionary-repatch.js:
* stress/retry-cache-later.js:
* stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
* stress/slow-path-generator-updating-current-node-dfg.js:
* stress/unshift-array-storage.js:

Tools:

This gives us more flexibility when specific tests needs to enable special JSC
options in order to exercise specific code paths to be tested.  It also saves us
from having to create duplicate test run configurations e.g. runMiscFTLNoCJITTest.
We can now just use runFTLNoCJIT in its place.

Also replaced the ifJSCArgIsntProvidedAreWeReleaseBuild variable with $buildType
so that we have the ability to skip certain tests for release or debug builds.
This will be needed in the upcoming patch for https://webkit.org/b/155145.

* Scripts/run-jsc-stress-tests:

Modified Paths

Diff

Modified: trunk/JSTests/ChangeLog (208691 => 208692)


--- trunk/JSTests/ChangeLog	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/ChangeLog	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,3 +1,22 @@
+2016-11-14  Mark Lam  <[email protected]>
+
+        Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
+        https://bugs.webkit.org/show_bug.cgi?id=164695
+
+        Reviewed by Keith Miller.
+
+        Replace use of runMisc* test run configurations with equivalents.
+
+        * stress/licm-no-pre-header-nested.js:
+        * stress/licm-no-pre-header.js:
+        * stress/licm-pre-header-cannot-exit-nested.js:
+        * stress/licm-pre-header-cannot-exit.js:
+        * stress/make-dictionary-repatch.js:
+        * stress/retry-cache-later.js:
+        * stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
+        * stress/slow-path-generator-updating-current-node-dfg.js:
+        * stress/unshift-array-storage.js:
+
 2016-11-11  Joseph Pecoraro  <[email protected]>
 
         test262: DataView with explicit undefined byteLength should be the same as it not being present

Modified: trunk/JSTests/stress/licm-no-pre-header-nested.js (208691 => 208692)


--- trunk/JSTests/stress/licm-no-pre-header-nested.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-no-pre-header-nested.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscFTLNoCJITTest("--createPreHeaders=false")
+//@ runFTLNoCJIT("--createPreHeaders=false")
 
 function foo(array, y) {
     var x = 0;

Modified: trunk/JSTests/stress/licm-no-pre-header.js (208691 => 208692)


--- trunk/JSTests/stress/licm-no-pre-header.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-no-pre-header.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscFTLNoCJITTest("--createPreHeaders=false")
+//@ runFTLNoCJIT("--createPreHeaders=false")
 
 function foo(array) {
     var result = 0;

Modified: trunk/JSTests/stress/licm-pre-header-cannot-exit-nested.js (208691 => 208692)


--- trunk/JSTests/stress/licm-pre-header-cannot-exit-nested.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-pre-header-cannot-exit-nested.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscFTLNoCJITTest("--createPreHeaders=false")
+//@ runFTLNoCJIT("--createPreHeaders=false")
 
 function foo(object, predicate) {
     for (var j = 0; j < 10; ++j) {

Modified: trunk/JSTests/stress/licm-pre-header-cannot-exit.js (208691 => 208692)


--- trunk/JSTests/stress/licm-pre-header-cannot-exit.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-pre-header-cannot-exit.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscFTLNoCJITTest("--createPreHeaders=false")
+//@ runFTLNoCJIT("--createPreHeaders=false")
 
 function foo(object, predicate) {
     var result = 0;

Modified: trunk/JSTests/stress/make-dictionary-repatch.js (208691 => 208692)


--- trunk/JSTests/stress/make-dictionary-repatch.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/make-dictionary-repatch.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ if $jitTests then runMiscNoCJITTest("--useDFGJIT=false", "--useLLInt=false") else skip end
+//@ if $jitTests then runNoCJIT("--useDFGJIT=false", "--useLLInt=false") else skip end
 
 function foo(o) {
     return o.f;

Modified: trunk/JSTests/stress/retry-cache-later.js (208691 => 208692)


--- trunk/JSTests/stress/retry-cache-later.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/retry-cache-later.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscNoCJITTest("--useLLInt=false", "--useDFGJIT=false")
+//@ runNoCJIT("--useLLInt=false", "--useDFGJIT=false")
 
 function foo(o) {
     return o.i7;

Modified: trunk/JSTests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js (208691 => 208692)


--- trunk/JSTests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscNoCJITTest("--forceDebuggerBytecodeGeneration=true", "--alwaysUseShadowChicken=true")
+//@ runNoCJIT("--forceDebuggerBytecodeGeneration=true", "--alwaysUseShadowChicken=true")
 
 "use strict";
 

Modified: trunk/JSTests/stress/slow-path-generator-updating-current-node-dfg.js (208691 => 208692)


--- trunk/JSTests/stress/slow-path-generator-updating-current-node-dfg.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/slow-path-generator-updating-current-node-dfg.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscFTLNoCJITTest("--deferGCShouldCollectWithProbability=true", "--deferGCProbability=1.0")
+//@ runFTLNoCJIT("--deferGCShouldCollectWithProbability=true", "--deferGCProbability=1.0")
 
 function foo(a) {
     return a.push(25);

Modified: trunk/JSTests/stress/unshift-array-storage.js (208691 => 208692)


--- trunk/JSTests/stress/unshift-array-storage.js	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/unshift-array-storage.js	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,4 +1,4 @@
-//@ runMiscFTLNoCJITTest("--scribbleFreeCells=true", "--deferGCShouldCollectWithProbability=true", "--deferGCProbability=1")
+//@ runFTLNoCJIT("--scribbleFreeCells=true", "--deferGCShouldCollectWithProbability=true", "--deferGCProbability=1")
 
 // Create some array storage.
 var array = [];

Modified: trunk/Tools/ChangeLog (208691 => 208692)


--- trunk/Tools/ChangeLog	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/Tools/ChangeLog	2016-11-14 18:27:41 UTC (rev 208692)
@@ -1,3 +1,21 @@
+2016-11-14  Mark Lam  <[email protected]>
+
+        Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
+        https://bugs.webkit.org/show_bug.cgi?id=164695
+
+        Reviewed by Keith Miller.
+
+        This gives us more flexibility when specific tests needs to enable special JSC
+        options in order to exercise specific code paths to be tested.  It also saves us
+        from having to create duplicate test run configurations e.g. runMiscFTLNoCJITTest.
+        We can now just use runFTLNoCJIT in its place.
+
+        Also replaced the ifJSCArgIsntProvidedAreWeReleaseBuild variable with $buildType
+        so that we have the ability to skip certain tests for release or debug builds.
+        This will be needed in the upcoming patch for https://webkit.org/b/155145.
+
+        * Scripts/run-jsc-stress-tests:
+
 2016-11-14  Joanmarie Diggs  <[email protected]>
 
         AX: [ATK] Expose STATE_SINGLE_LINE and STATE_MULTI_LINE for ARIA searchbox role

Modified: trunk/Tools/Scripts/run-jsc-stress-tests (208691 => 208692)


--- trunk/Tools/Scripts/run-jsc-stress-tests	2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/Tools/Scripts/run-jsc-stress-tests	2016-11-14 18:27:41 UTC (rev 208692)
@@ -117,6 +117,7 @@
 $filter = nil
 $envVars = []
 $quickMode = false
+$buildType = "release"
 
 
 def usage
@@ -153,7 +154,6 @@
 end
 
 jscArg = nil
-ifJSCArgIsntProvidedAreWeReleaseBuild = true
 
 GetoptLong.new(['--help', '-h', GetoptLong::NO_ARGUMENT],
                ['--jsc', '-j', GetoptLong::REQUIRED_ARGUMENT],
@@ -226,9 +226,9 @@
     when '--quick'
         $quickMode = true
     when '--debug'
-        ifJSCArgIsntProvidedAreWeReleaseBuild = false
+        $buildType = "debug"
     when '--release'
-        ifJSCArgIsntProvidedAreWeReleaseBuild = true
+        $buildType = "release"
     end
 }
 
@@ -252,7 +252,7 @@
 unless jscArg
     # If we're not provided a JSC path, try to come up with a sensible JSC path automagically.
     command = SCRIPTS_PATH.join("webkit-build-directory").to_s
-    command += ifJSCArgIsntProvidedAreWeReleaseBuild ? " --release" : " --debug"
+    command += ($buildType == "release") ? " --release" : " --debug"
     command += " --executablePath"
 
     output = `#{command}`.split("\n")
@@ -791,117 +791,113 @@
     addRunCommand(kind, [pathToVM.to_s] + BASE_OPTIONS + options + [$benchmark.to_s], silentOutputHandler, simpleErrorHandler)
 end
 
-def runNoFTL
-    run("no-ftl")
+def runNoFTL(*optionalTestSpecificOptions)
+    run("no-ftl", *optionalTestSpecificOptions)
 end
 
-def runWithRAMSize(size)
-    run("ram-size-#{size}", "--forceRAMSize=#{size}")
+def runWithRAMSize(size, *optionalTestSpecificOptions)
+    run("ram-size-#{size}", "--forceRAMSize=#{size}", *optionalTestSpecificOptions)
 end
 
-def runOneLargeHeap
+def runOneLargeHeap(*optionalTestSpecificOptions)
     if $memoryLimited
         $didAddRunCommand = true
         puts "Skipping #{$collectionName}/#{$benchmark}"
     else
-        run("default")
+        run("default", *optionalTestSpecificOptions)
     end
 end
 
-def runNoJIT
-    run("no-jit", "--useJIT=false")
+def runNoJIT(*optionalTestSpecificOptions)
+    run("no-jit", "--useJIT=false", *optionalTestSpecificOptions)
 end
 
-def runNoLLInt
+def runNoLLInt(*optionalTestSpecificOptions)
     if $jitTests
-        run("no-llint", "--useLLInt=false")
+        run("no-llint", "--useLLInt=false", *optionalTestSpecificOptions)
     end
 end
 
-def runNoCJITValidate
-    run("no-cjit", "--validateBytecode=true", "--validateGraph=true", *NO_CJIT_OPTIONS)
+def runNoCJITValidate(*optionalTestSpecificOptions)
+    run("no-cjit", "--validateBytecode=true", "--validateGraph=true", *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runNoCJITValidatePhases
-    run("no-cjit-validate-phases", "--validateBytecode=true", "--validateGraphAtEachPhase=true", "--useSourceProviderCache=false", *NO_CJIT_OPTIONS)
+def runNoCJITValidatePhases(*optionalTestSpecificOptions)
+    run("no-cjit-validate-phases", "--validateBytecode=true", "--validateGraphAtEachPhase=true", "--useSourceProviderCache=false", *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runDefault
-    run("default", *FTL_OPTIONS)
+def runDefault(*optionalTestSpecificOptions)
+    run("default", *(FTL_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLNoCJIT
-    run("ftl-no-cjit", *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+def runFTLNoCJIT(*optionalTestSpecificOptions)
+    run("misc-ftl-no-cjit", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLNoCJITValidate
-    run("ftl-no-cjit-validate-sampling-profiler", "--validateGraph=true", "--useSamplingProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+def runFTLNoCJITValidate(*optionalTestSpecificOptions)
+    run("ftl-no-cjit-validate-sampling-profiler", "--validateGraph=true", "--useSamplingProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLNoCJITNoPutStackValidate
-    run("ftl-no-cjit-no-put-stack-validate", "--validateGraph=true", "--usePutStackSinking=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+def runFTLNoCJITNoPutStackValidate(*optionalTestSpecificOptions)
+    run("ftl-no-cjit-no-put-stack-validate", "--validateGraph=true", "--usePutStackSinking=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLNoCJITNoInlineValidate
-    run("ftl-no-cjit-no-inline-validate", "--validateGraph=true", "--maximumInliningDepth=1", *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+def runFTLNoCJITNoInlineValidate(*optionalTestSpecificOptions)
+    run("ftl-no-cjit-no-inline-validate", "--validateGraph=true", "--maximumInliningDepth=1", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLNoCJITOSRValidation
-    run("ftl-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+def runFTLNoCJITOSRValidation(*optionalTestSpecificOptions)
+    run("ftl-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runDFGEager
-    run("dfg-eager", *EAGER_OPTIONS)
+def runDFGEager(*optionalTestSpecificOptions)
+    run("dfg-eager", *(EAGER_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runDFGEagerNoCJITValidate
-    run("dfg-eager-no-cjit-validate", "--validateGraph=true", *(NO_CJIT_OPTIONS + EAGER_OPTIONS))
+def runDFGEagerNoCJITValidate(*optionalTestSpecificOptions)
+    run("dfg-eager-no-cjit-validate", "--validateGraph=true", *(NO_CJIT_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLEager
-    run("ftl-eager", *(FTL_OPTIONS + EAGER_OPTIONS))
+def runFTLEager(*optionalTestSpecificOptions)
+    run("ftl-eager", *(FTL_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLEagerNoCJITValidate
-    run("ftl-eager-no-cjit", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
+def runFTLEagerNoCJITValidate(*optionalTestSpecificOptions)
+    run("ftl-eager-no-cjit", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLEagerNoCJITOSRValidation
-    run("ftl-eager-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
+def runFTLEagerNoCJITOSRValidation(*optionalTestSpecificOptions)
+    run("ftl-eager-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runNoCJITNoASO
-    run("no-cjit-no-aso", "--useArchitectureSpecificOptimizations=false", *NO_CJIT_OPTIONS)
+def runNoCJITNoASO(*optionalTestSpecificOptions)
+    run("no-cjit-no-aso", "--useArchitectureSpecificOptimizations=false", *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runNoCJITNoAccessInlining
-    run("no-cjit-no-access-inlining", "--useAccessInlining=false", *NO_CJIT_OPTIONS)
+def runNoCJITNoAccessInlining(*optionalTestSpecificOptions)
+    run("no-cjit-no-access-inlining", "--useAccessInlining=false", *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLNoCJITNoAccessInlining
-    run("ftl-no-cjit-no-access-inlining", "--useAccessInlining=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+def runFTLNoCJITNoAccessInlining(*optionalTestSpecificOptions)
+    run("ftl-no-cjit-no-access-inlining", "--useAccessInlining=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runFTLNoCJITSmallPool
-    run("ftl-no-cjit-small-pool", "--jitMemoryReservationSize=50000", *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+def runFTLNoCJITSmallPool(*optionalTestSpecificOptions)
+    run("ftl-no-cjit-small-pool", "--jitMemoryReservationSize=50000", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runMiscNoCJITTest(*options)
-    run("misc-no-cjit", *(NO_CJIT_OPTIONS + options))
+def runNoCJIT(*optionalTestSpecificOptions)
+    run("no-cjit", *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runMiscFTLNoCJITTest(*options)
-    run("misc-ftl-no-cjit", *(FTL_OPTIONS + NO_CJIT_OPTIONS + options))
+def runDFGMaximalFlushPhase(*optionalTestSpecificOptions)
+    run("dfg-maximal-flush-validate-no-cjit", "--forceCodeBlockToJettisonDueToOldAge=true", "--validateGraph=true", "--useMaximalFlushInsertionPhase=true", *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
-def runDFGMaximalFlushPhase
-    run("dfg-maximal-flush-validate-no-cjit", "--forceCodeBlockToJettisonDueToOldAge=true", "--validateGraph=true", "--useMaximalFlushInsertionPhase=true", *NO_CJIT_OPTIONS)
+def runShadowChicken(*optionalTestSpecificOptions)
+    run("shadow-chicken", "--useDFGJIT=false", "--alwaysUseShadowChicken=true", *optionalTestSpecificOptions)
 end
 
-def runShadowChicken
-    run("shadow-chicken", "--useDFGJIT=false", "--alwaysUseShadowChicken=true")
-end
-
 def defaultRun
     if $quickMode
         defaultQuickRun
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to