Reviewers: danno, Michael Achenbach, Jakob, ulan, paul.l..., gergely.kis.imgtec, akos.palfi.imgtec, dusmil.imgtec,

Description:
Conditional flags for tests - set JS stack size for simulators.

There are separated JS and C stacks on simulators so for some stack
extensive tests (like mozilla/js1_5/extensions/regress-355497) might
cause a C stack overflow and that overflow is not caught by V8. It is
not an issue on real HW. Increasing the C stack also solves the problem
but we have already FLAG_sim_stack_size flag to control the JS stack
size.

This patch makes it possible to add flags to tests conditionally in
.status files.

TEST=mozilla/js1_5/extensions/regress-355497
BUG=v8:3152
LOG=N

Please review this at https://codereview.chromium.org/735723006/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+15, -4 lines):
  M test/mozilla/mozilla.status
  M tools/run-tests.py
  M tools/testrunner/local/testsuite.py


Index: test/mozilla/mozilla.status
diff --git a/test/mozilla/mozilla.status b/test/mozilla/mozilla.status
index 077662e444380e38236572b8a4bd13abc89f19b9..5254c5affb49a74884c1d63c265ab92139cff5b0 100644
--- a/test/mozilla/mozilla.status
+++ b/test/mozilla/mozilla.status
@@ -866,9 +866,6 @@


 ['arch ==  arm64', {
-  # BUG(v8:3152): Runs out of stack in debug mode.
-  'js1_5/extensions/regress-355497': [FAIL_OK, ['mode == debug', SKIP]],
-
   # BUG(v8:3503): Times out in debug mode.
   'js1_5/Regress/regress-280769-2': [PASS, FAIL, ['mode == debug', SKIP]],
 }],  # 'arch ==  arm64'
@@ -893,6 +890,14 @@
   'js1_5/GC/regress-203278-2': [PASS, TIMEOUT, NO_VARIANTS],
 }],  # 'arch == mipsel or arch == mips64el'

+['arch == mips64el and simulator_run == True', {
+ 'js1_5/extensions/regress-355497': [FAIL_OK, 'Flags: --sim-stack-size=512'],
+}],
+
+['arch == arm64 and simulator_run == True', {
+ 'js1_5/extensions/regress-355497': [FAIL_OK, 'Flags: --sim-stack-size=512'],
+}],
+
 ['arch == mips', {

   # BUG(3251229): Times out when running new crankshaft test script.
Index: tools/run-tests.py
diff --git a/tools/run-tests.py b/tools/run-tests.py
index 20f36798a7ee71c4040956ed8cc9746a2afa7c7f..d793a8ae71532f33c88640b6892621e5ca6b9321 100755
--- a/tools/run-tests.py
+++ b/tools/run-tests.py
@@ -491,7 +491,8 @@ def Execute(arch, mode, args, options, suites, workspace):

   # TODO(all): Combine "simulator" and "simulator_run".
   simulator_run = not options.dont_skip_simulator_slow_tests and \
- arch in ['arm64', 'arm', 'mips'] and ARCH_GUESS and arch != ARCH_GUESS
+      arch in ['arm64', 'arm', 'mipsel', 'mips', 'mips64el'] and \
+      ARCH_GUESS and arch != ARCH_GUESS
   # Find available test suites and read test cases from them.
   variables = {
     "arch": arch,
Index: tools/testrunner/local/testsuite.py
diff --git a/tools/testrunner/local/testsuite.py b/tools/testrunner/local/testsuite.py index 6ff97b34b9e549162f8bebf2bdd23225782ae00e..555c1309be2a21f08c8a6ad47c61fb9a0e90ebad 100644
--- a/tools/testrunner/local/testsuite.py
+++ b/tools/testrunner/local/testsuite.py
@@ -136,6 +136,11 @@ class TestSuite(object):
         t.outcomes = self.rules[testname]
         if statusfile.DoSkip(t.outcomes):
           continue  # Don't add skipped tests to |filtered|.
+        for outc in t.outcomes:
+          assert type(outc) == str
+          if outc.startswith('Flags: '):
+            (tmp0, tmp1, flags) = outc.partition(':')
+            t.flags += flags.split()
         flaky = statusfile.IsFlaky(t.outcomes)
         slow = statusfile.IsSlow(t.outcomes)
         pass_fail = statusfile.IsPassOrFail(t.outcomes)


--
--
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/d/optout.

Reply via email to