Reviewers: Jakob, mvstanton,
Message:
PTAL, Jakob at the test runner and Michael at the skipped tests...
Description:
Add infrastructure for skipping tests in GC stress mode.
Also move the GC stress configuration from the buildbot to the test runner.
BUG=
Please review this at https://codereview.chromium.org/141653008/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+37, -57 lines):
M test/mjsunit/allocation-site-info.js
M test/mjsunit/array-constructor-feedback.js
M test/mjsunit/array-feedback.js
M test/mjsunit/array-literal-feedback.js
M test/mjsunit/d8-performance-now.js
M test/mjsunit/elements-kind.js
M test/mjsunit/fast-prototype.js
M test/mjsunit/mjsunit.status
M test/mjsunit/opt-elements-kind.js
M test/mjsunit/osr-elements-kind.js
M test/mjsunit/regress/regress-165637.js
M tools/run-deopt-fuzzer.py
M tools/run-tests.py
Index: test/mjsunit/allocation-site-info.js
diff --git a/test/mjsunit/allocation-site-info.js
b/test/mjsunit/allocation-site-info.js
index
7885608c31623e490780bedb794a0383fd30ccf1..cd086d35060355e97a37f7f6aba8886d9660baea
100644
--- a/test/mjsunit/allocation-site-info.js
+++ b/test/mjsunit/allocation-site-info.js
@@ -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;
Index: test/mjsunit/array-constructor-feedback.js
diff --git a/test/mjsunit/array-constructor-feedback.js
b/test/mjsunit/array-constructor-feedback.js
index
7d6e08ec47c8c21f4a32c548f543b776ad75fe0e..7cd421bd1b86c16f7f3e096dc7be639f7d262022
100644
--- a/test/mjsunit/array-constructor-feedback.js
+++ b/test/mjsunit/array-constructor-feedback.js
@@ -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;
Index: test/mjsunit/array-feedback.js
diff --git a/test/mjsunit/array-feedback.js b/test/mjsunit/array-feedback.js
index
0471f65f40d039858197f5e73b23b5324969a896..4129be1f880cb7974ec15d784707b1e2412fea0f
100644
--- a/test/mjsunit/array-feedback.js
+++ b/test/mjsunit/array-feedback.js
@@ -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;
Index: test/mjsunit/array-literal-feedback.js
diff --git a/test/mjsunit/array-literal-feedback.js
b/test/mjsunit/array-literal-feedback.js
index
c80040b80aebe26c7925ea0142b3f1461b71172d..cfda0f6d5f6006d4aac3aa3e288066bd5fb421d5
100644
--- a/test/mjsunit/array-literal-feedback.js
+++ b/test/mjsunit/array-literal-feedback.js
@@ -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;
Index: test/mjsunit/d8-performance-now.js
diff --git a/test/mjsunit/d8-performance-now.js
b/test/mjsunit/d8-performance-now.js
index
13eb1d3f006fa9405873d7e191d733bc4ac37b02..3e5485e81d943c4e0f49a431465284e7aff1b1e2
100644
--- a/test/mjsunit/d8-performance-now.js
+++ b/test/mjsunit/d8-performance-now.js
@@ -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();
Index: test/mjsunit/elements-kind.js
diff --git a/test/mjsunit/elements-kind.js b/test/mjsunit/elements-kind.js
index
b02af65ed0ac07f641947cd1b64f99ed9c5f3b03..76fa2620677ca3476e1428498eef1842186135ee
100644
--- a/test/mjsunit/elements-kind.js
+++ b/test/mjsunit/elements-kind.js
@@ -26,7 +26,7 @@
// 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: --nostress-opt --nostress-compaction
// Test element kind of objects.
// Since --smi-only-arrays affects builtins, its default setting at compile
Index: test/mjsunit/fast-prototype.js
diff --git a/test/mjsunit/fast-prototype.js b/test/mjsunit/fast-prototype.js
index
a86b0ea0b2a8050fbeb525cb1ad4fd0e687c54fa..cdcc1a9ed68e8995b4642b5702166e781b46e211
100644
--- a/test/mjsunit/fast-prototype.js
+++ b/test/mjsunit/fast-prototype.js
@@ -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.
Index: test/mjsunit/mjsunit.status
diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status
index
c28c5955a4cbc033e23b23d8c91183343514cc0c..2669d0f33b2b551071684bdb3de66b5c49047762
100644
--- a/test/mjsunit/mjsunit.status
+++ b/test/mjsunit/mjsunit.status
@@ -104,15 +104,25 @@
# Tests verifying CHECK and ASSERT.
'verify-check-false': [FAIL, NO_VARIANTS],
'verify-assert-false': [NO_VARIANTS, ['mode == release', PASS], ['mode
== debug', FAIL]],
-
- # 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', {
# Slow tests which times out in debug mode.
Index: test/mjsunit/opt-elements-kind.js
diff --git a/test/mjsunit/opt-elements-kind.js
b/test/mjsunit/opt-elements-kind.js
index
a7811c81eafa87266e96374a6aec90ccf74cecf7..f26bb4206778bfe7bda6129b7d4e66eae8edb5c2
100644
--- a/test/mjsunit/opt-elements-kind.js
+++ b/test/mjsunit/opt-elements-kind.js
@@ -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) {
Index: test/mjsunit/osr-elements-kind.js
diff --git a/test/mjsunit/osr-elements-kind.js
b/test/mjsunit/osr-elements-kind.js
index
af4b5ec9f180d39b5b1823d02886da63acfcb053..2ad3c4348731e8886aed8023168c342b349741d8
100644
--- a/test/mjsunit/osr-elements-kind.js
+++ b/test/mjsunit/osr-elements-kind.js
@@ -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) {
Index: test/mjsunit/regress/regress-165637.js
diff --git a/test/mjsunit/regress/regress-165637.js
b/test/mjsunit/regress/regress-165637.js
index
72af528a86b5e622fb5d802638672e66e1b9d183..84c9041216cb6045c036054b67e470c7615f5639
100644
--- a/test/mjsunit/regress/regress-165637.js
+++ b/test/mjsunit/regress/regress-165637.js
@@ -45,10 +45,6 @@ function do_slices() {
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).
assertTrue(do_slices() < (3 * 1000));
Index: tools/run-deopt-fuzzer.py
diff --git a/tools/run-deopt-fuzzer.py b/tools/run-deopt-fuzzer.py
index
292cf002f9b3ff0b7f12de73486df3a7cbdec85f..401ae046ed9a2ae3abc60ca5ebd2dcf1053c8109
100755
--- a/tools/run-deopt-fuzzer.py
+++ b/tools/run-deopt-fuzzer.py
@@ -363,12 +363,13 @@ def Execute(arch, mode, args, options, suites,
workspace):
# Find available test suites and read test cases from them.
variables = {
- "mode": mode,
"arch": arch,
- "system": utils.GuessOS(),
- "isolates": options.isolates,
"deopt_fuzzer": True,
+ "gc_stress": False,
+ "isolates": options.isolates,
+ "mode": mode,
"no_i18n": False,
+ "system": utils.GuessOS(),
}
all_tests = []
num_tests = 0
Index: tools/run-tests.py
diff --git a/tools/run-tests.py b/tools/run-tests.py
index
15c42d0379fa8f750c6044abde92bf91eb4d547d..e032a55f508bbadd6d950ccd4bc3358848f893d7
100755
--- a/tools/run-tests.py
+++ b/tools/run-tests.py
@@ -68,6 +68,11 @@ MODE_FLAGS = {
"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",
"arm",
@@ -108,6 +113,9 @@ def BuildOptions():
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 @@ def ProcessOptions(options):
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 @@ def Execute(arch, mode, args, options, suites,
workspace):
# Find available test suites and read test cases from them.
variables = {
- "mode": mode,
"arch": arch,
- "system": utils.GuessOS(),
- "isolates": options.isolates,
"deopt_fuzzer": False,
+ "gc_stress": options.gc_stress,
+ "isolates": options.isolates,
+ "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.