Revision: 18708
Author:   [email protected]
Date:     Tue Jan 21 12:41:25 2014 UTC
Log:      Add infrastructure for skipping tests in GC stress mode.

Also move the GC stress configuration from the buildbot to the test runner.

BUG=
[email protected], [email protected]

Review URL: https://codereview.chromium.org/141653008
http://code.google.com/p/v8/source/detail?r=18708

Modified:
 /branches/bleeding_edge/test/mjsunit/allocation-site-info.js
 /branches/bleeding_edge/test/mjsunit/array-constructor-feedback.js
 /branches/bleeding_edge/test/mjsunit/array-feedback.js
 /branches/bleeding_edge/test/mjsunit/array-literal-feedback.js
 /branches/bleeding_edge/test/mjsunit/d8-performance-now.js
 /branches/bleeding_edge/test/mjsunit/elements-kind.js
 /branches/bleeding_edge/test/mjsunit/fast-prototype.js
 /branches/bleeding_edge/test/mjsunit/mjsunit.status
 /branches/bleeding_edge/test/mjsunit/opt-elements-kind.js
 /branches/bleeding_edge/test/mjsunit/osr-elements-kind.js
 /branches/bleeding_edge/test/mjsunit/regress/regress-165637.js
 /branches/bleeding_edge/tools/run-deopt-fuzzer.py
 /branches/bleeding_edge/tools/run-tests.py

=======================================
--- /branches/bleeding_edge/test/mjsunit/allocation-site-info.js Tue Jan 7 15:58:25 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/allocation-site-info.js Tue Jan 21 12:41:25 2014 UTC
@@ -35,11 +35,6 @@
 // in this test case.  Depending on whether smi-only arrays are actually
// enabled, this test takes the appropriate code path to check smi-only arrays.

-// Reset the GC stress mode to be off. Needed because AllocationMementos only -// live for one gc, so a gc that happens in certain fragile areas of the test
-// can break assumptions.
-%SetFlags("--gc-interval=-1")
-
// support_smi_only_arrays = %HasFastSmiElements(new Array(1,2,3,4,5,6,7,8));
 support_smi_only_arrays = true;

=======================================
--- /branches/bleeding_edge/test/mjsunit/array-constructor-feedback.js Tue Jan 7 15:58:25 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/array-constructor-feedback.js Tue Jan 21 12:41:25 2014 UTC
@@ -35,11 +35,6 @@
 // in this test case.  Depending on whether smi-only arrays are actually
// enabled, this test takes the appropriate code path to check smi-only arrays.

-// Reset the GC stress mode to be off. Needed because AllocationMementos only -// live for one gc, so a gc that happens in certain fragile areas of the test
-// can break assumptions.
-%SetFlags("--gc-interval=-1")
-
// support_smi_only_arrays = %HasFastSmiElements(new Array(1,2,3,4,5,6,7,8));
 support_smi_only_arrays = true;

=======================================
--- /branches/bleeding_edge/test/mjsunit/array-feedback.js Fri Jan 17 11:24:36 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/array-feedback.js Tue Jan 21 12:41:25 2014 UTC
@@ -35,11 +35,6 @@
 // in this test case.  Depending on whether smi-only arrays are actually
// enabled, this test takes the appropriate code path to check smi-only arrays.

-// Reset the GC stress mode to be off. Needed because AllocationMementos only -// live for one gc, so a gc that happens in certain fragile areas of the test
-// can break assumptions.
-%SetFlags("--gc-interval=-1")
-
// support_smi_only_arrays = %HasFastSmiElements(new Array(1,2,3,4,5,6,7,8));
 support_smi_only_arrays = true;

=======================================
--- /branches/bleeding_edge/test/mjsunit/array-literal-feedback.js Tue Jan 7 15:58:25 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/array-literal-feedback.js Tue Jan 21 12:41:25 2014 UTC
@@ -35,11 +35,6 @@
 // in this test case.  Depending on whether smi-only arrays are actually
// enabled, this test takes the appropriate code path to check smi-only arrays.

-// Reset the GC stress mode to be off. Needed because AllocationMementos only -// live for one gc, so a gc that happens in certain fragile areas of the test
-// can break assumptions.
-%SetFlags("--gc-interval=-1")
-
// support_smi_only_arrays = %HasFastSmiElements(new Array(1,2,3,4,5,6,7,8));
 support_smi_only_arrays = true;

=======================================
--- /branches/bleeding_edge/test/mjsunit/d8-performance-now.js Fri Jan 10 12:07:29 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/d8-performance-now.js Tue Jan 21 12:41:25 2014 UTC
@@ -30,11 +30,6 @@
// Test the performance.now() function of d8. This test only makes sense with
 // d8.

-// Don't run this test in gc stress mode. Time differences may be long
-// due to garbage collections.
-%SetFlags("--gc-interval=-1");
-%SetFlags("--nostress-compaction");
-
 if (this.performance && performance.now) {
   (function run() {
     var start_test = performance.now();
=======================================
--- /branches/bleeding_edge/test/mjsunit/elements-kind.js Mon Jan 13 17:11:36 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/elements-kind.js Tue Jan 21 12:41:25 2014 UTC
@@ -25,8 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-// Flags: --allow-natives-syntax --smi-only-arrays --expose-gc
-// Flags: --nostress-opt --nostress-compaction --gc-interval=-1
+// Flags: --allow-natives-syntax --smi-only-arrays --expose-gc --nostress-opt

 // Test element kind of objects.
 // Since --smi-only-arrays affects builtins, its default setting at compile
=======================================
--- /branches/bleeding_edge/test/mjsunit/fast-prototype.js Thu Nov 7 12:20:45 2013 UTC +++ /branches/bleeding_edge/test/mjsunit/fast-prototype.js Tue Jan 21 12:41:25 2014 UTC
@@ -26,11 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 // Flags: --allow-natives-syntax --expose-gc
-
-// TODO(mstarzinger): This test does not succeed when GCs happen in
-// between prototype transitions, we disable GC stress for now.
-%SetFlags("--gc-interval=-1")
-
 // Flags: --noincremental-marking

 // Check that objects that are used for prototypes are in the fast mode.
=======================================
--- /branches/bleeding_edge/test/mjsunit/mjsunit.status Tue Jan 21 07:58:54 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/mjsunit.status Tue Jan 21 12:41:25 2014 UTC
@@ -104,13 +104,23 @@
   # Tests verifying CHECK and ASSERT.
   'verify-check-false': [FAIL, NO_VARIANTS],
'verify-assert-false': [NO_VARIANTS, ['mode == release', PASS], ['mode == debug', FAIL]],
+}],  # ALWAYS

- # TODO(machenbach): Temporarily marked as flaky until there is infrastructure
-  # to disable these tests on GC stress.
-  'elements-kind': [PASS, ['mode == debug and system == linux', FLAKY]],
- 'osr-elements-kind': [PASS, ['mode == debug and system == linux', FLAKY]], - 'array-literal-feedback': [PASS, ['mode == debug and system == linux', FLAKY]],
-}],  # ALWAYS
+##############################################################################
+['gc_stress == True', {
+  # Skip tests not suitable for GC stress.
+  'allocation-site-info': [SKIP],
+  'array-constructor-feedback': [SKIP],
+  'array-feedback': [SKIP],
+  'array-literal-feedback': [SKIP],
+  'd8-performance-now': [SKIP],
+  'elements-kind': [SKIP],
+  'fast-prototype': [SKIP],
+  'opt-elements-kind': [SKIP],
+  'osr-elements-kind': [SKIP],
+  'regress/regress-165637': [SKIP],
+  'regress/regress-2249': [SKIP],
+}],  # 'gc_stress == True'

##############################################################################
 ['arch == arm or arch == android_arm', {
=======================================
--- /branches/bleeding_edge/test/mjsunit/opt-elements-kind.js Tue Jan 7 15:58:25 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/opt-elements-kind.js Tue Jan 21 12:41:25 2014 UTC
@@ -39,11 +39,6 @@
 // in this test case.  Depending on whether smi-only arrays are actually
// enabled, this test takes the appropriate code path to check smi-only arrays.

-// Reset the GC stress mode to be off. Needed because AllocationMementos only -// live for one gc, so a gc that happens in certain fragile areas of the test
-// can break assumptions.
-%SetFlags("--gc-interval=-1")
-
 support_smi_only_arrays = %HasFastSmiElements(new Array(1,2,3,4,5,6,7,8));

 if (support_smi_only_arrays) {
=======================================
--- /branches/bleeding_edge/test/mjsunit/osr-elements-kind.js Tue Jan 7 15:58:25 2014 UTC +++ /branches/bleeding_edge/test/mjsunit/osr-elements-kind.js Tue Jan 21 12:41:25 2014 UTC
@@ -39,11 +39,6 @@
 // in this test case.  Depending on whether smi-only arrays are actually
// enabled, this test takes the appropriate code path to check smi-only arrays.

-// Reset the GC stress mode to be off. Needed because AllocationMementos only -// live for one gc, so a gc that happens in certain fragile areas of the test
-// can break assumptions.
-%SetFlags("--gc-interval=-1")
-
 support_smi_only_arrays = %HasFastSmiElements(new Array(1,2,3,4,5,6,7,8));

 if (support_smi_only_arrays) {
=======================================
--- /branches/bleeding_edge/test/mjsunit/regress/regress-165637.js Wed Feb 6 13:21:28 2013 UTC +++ /branches/bleeding_edge/test/mjsunit/regress/regress-165637.js Tue Jan 21 12:41:25 2014 UTC
@@ -44,10 +44,6 @@

   return Date.now() - start;
 }
-
-// Reset the GC stress mode to be off. Needed so that the runtime of this test
-// stays within bounds even if we run in GC stress mode.
-%SetFlags("--gc-interval=-1 --noforce-marking-deque-overflows");

// Should never take more than 3 seconds (if the bug is fixed, the test takes
 // considerably less time than 3 seconds).
=======================================
--- /branches/bleeding_edge/tools/run-deopt-fuzzer.py Fri Sep 20 13:13:57 2013 UTC +++ /branches/bleeding_edge/tools/run-deopt-fuzzer.py Tue Jan 21 12:41:25 2014 UTC
@@ -363,12 +363,13 @@

   # Find available test suites and read test cases from them.
   variables = {
-    "mode": mode,
     "arch": arch,
-    "system": utils.GuessOS(),
+    "deopt_fuzzer": True,
+    "gc_stress": False,
     "isolates": options.isolates,
-    "deopt_fuzzer": True,
+    "mode": mode,
     "no_i18n": False,
+    "system": utils.GuessOS(),
   }
   all_tests = []
   num_tests = 0
=======================================
--- /branches/bleeding_edge/tools/run-tests.py  Thu Dec  5 12:37:24 2013 UTC
+++ /branches/bleeding_edge/tools/run-tests.py  Tue Jan 21 12:41:25 2014 UTC
@@ -67,6 +67,11 @@
                  "--debug-code", "--verify-heap"],
     "release" : ["--nobreak-on-abort", "--nodead-code-elimination",
                  "--nofold-constants"]}
+
+GC_STRESS_FLAGS = ["--gc-interval=500", "--stress-compaction",
+                   "--concurrent-recompilation-queue-length=64",
+                   "--concurrent-recompilation-delay=500",
+                   "--concurrent-recompilation"]

 SUPPORTED_ARCHS = ["android_arm",
                    "android_ia32",
@@ -108,6 +113,9 @@
   result.add_option("--pass-fail-tests",
                     help="Regard pass|fail tests (run|skip|dontcare)",
                     default="dontcare")
+  result.add_option("--gc-stress",
+                    help="Switch on GC stress mode",
+                    default=False, action="store_true")
   result.add_option("--command-prefix",
help="Prepended to each shell command used to run a test",
                     default="")
@@ -220,6 +228,10 @@
     options.no_network = True
   options.command_prefix = shlex.split(options.command_prefix)
   options.extra_flags = shlex.split(options.extra_flags)
+
+  if options.gc_stress:
+    options.extra_flags += GC_STRESS_FLAGS
+
   if options.j == 0:
     options.j = multiprocessing.cpu_count()

@@ -373,12 +385,13 @@

   # Find available test suites and read test cases from them.
   variables = {
-    "mode": mode,
     "arch": arch,
-    "system": utils.GuessOS(),
+    "deopt_fuzzer": False,
+    "gc_stress": options.gc_stress,
     "isolates": options.isolates,
-    "deopt_fuzzer": False,
+    "mode": mode,
     "no_i18n": options.no_i18n,
+    "system": utils.GuessOS(),
   }
   all_tests = []
   num_tests = 0

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to