[Re-landing] Turn on exception scope verification for JSC tests.
authormark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Sep 2017 18:25:28 +0000 (18:25 +0000)
committermark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Sep 2017 18:25:28 +0000 (18:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=162351
<rdar://problem/29563911>

Reviewed by Saam Barati.

Update: I'm re-landing this patch now that test262 exception check validation
failures have been fixed in r222617.  testapi still has some validation failures,
but this patch does not affect testapi.

Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
run-jsc-stress-tests.  This turns on exception scope verification on JSC test
runs (which currently does not include testapi).

Some stats on time to run JSC stress and mozilla tests:
1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s

The stats shows that (2) and (3) has effectively no time difference.  Hence, the
cost of enabling --validateExceptionChecks=true is not significant.

It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
--dumpSimulatedThrows=true off.  We can manually add that when we see a regression
and need to debug the issue.  Otherwise, we wont pay the price for it.

* Scripts/run-jsc-stress-tests:

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

Tools/ChangeLog
Tools/Scripts/run-jsc-stress-tests

index 23b47ff..a39b418 100644 (file)
@@ -1,3 +1,35 @@
+2017-09-28  Mark Lam  <mark.lam@apple.com>
+
+        [Re-landing] Turn on exception scope verification for JSC tests.
+        https://bugs.webkit.org/show_bug.cgi?id=162351
+        <rdar://problem/29563911>
+
+        Reviewed by Saam Barati.
+
+        Update: I'm re-landing this patch now that test262 exception check validation
+        failures have been fixed in r222617.  testapi still has some validation failures,
+        but this patch does not affect testapi.
+
+        Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
+        run-jsc-stress-tests.  This turns on exception scope verification on JSC test
+        runs (which currently does not include testapi).
+
+        Some stats on time to run JSC stress and mozilla tests:
+        1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
+        2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
+        3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
+        4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
+
+        The stats shows that (2) and (3) has effectively no time difference.  Hence, the
+        cost of enabling --validateExceptionChecks=true is not significant.
+
+        It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
+        21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
+        --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
+        and need to debug the issue.  Otherwise, we wont pay the price for it.
+
+        * Scripts/run-jsc-stress-tests:
+
 2017-09-27  Alex Christensen  <achristensen@webkit.org>
 
         Add WKContentRuleList notify action type
index 1a2e390..2e1099b 100755 (executable)
@@ -451,7 +451,7 @@ $numFailures = 0
 $numPasses = 0
 
 # We force all tests to use a smaller (1.5M) stack so that stack overflow tests can run faster.
-BASE_OPTIONS = ["--useFTLJIT=false", "--useFunctionDotArguments=true", "--maxPerThreadStackUsage=1572864"]
+BASE_OPTIONS = ["--useFTLJIT=false", "--useFunctionDotArguments=true", "--validateExceptionChecks=true", "--maxPerThreadStackUsage=1572864"]
 EAGER_OPTIONS = ["--thresholdForJITAfterWarmUp=10", "--thresholdForJITSoon=10", "--thresholdForOptimizeAfterWarmUp=20", "--thresholdForOptimizeAfterLongWarmUp=20", "--thresholdForOptimizeSoon=20", "--thresholdForFTLOptimizeAfterWarmUp=20", "--thresholdForFTLOptimizeSoon=20", "--maximumEvalCacheableSourceLength=150000", "--useEagerCodeBlockJettisonTiming=true"]
 # NOTE: Tests rely on this using scribbleFreeCells.
 NO_CJIT_OPTIONS = ["--useConcurrentJIT=false", "--thresholdForJITAfterWarmUp=100", "--scribbleFreeCells=true"]