Reviewers: Yang, danno, Jakob,

Message:
PTAL

Description:
Add fast make and test all target.

The new target called "fast" builds and tests with several configurations using
recent test runner speed improvements.

Runtime from scratch (after make clean): < 8 min
Runtime tests only: < 3 min

TEST=make fast

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

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+23, -7 lines):
  M Makefile
  M tools/run-tests.py


Index: Makefile
diff --git a/Makefile b/Makefile
index 295ef9ac8871a81cc00f696569853876ee14a005..f056a978a7b57c2c265addfb928a182caca452e6 100644
--- a/Makefile
+++ b/Makefile
@@ -350,6 +350,16 @@ native.check: native
        @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \
            --arch-and-mode=. $(TESTFLAGS)

+FASTTESTFLAGS = --flaky-tests=skip --slow-tests=skip --pass-fail-tests=skip \
+                --variants=default,stress
+FASTTESTMODES = ia32.release,x64.release,ia32.debug,x64.debug,arm.debug
+
+fast:
+       @$(MAKE) all optdebug=on -j$(shell python -c \
+               "import multiprocessing;print multiprocessing.cpu_count()")
+       @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+           --arch-and-mode=$(FASTTESTMODES) $(FASTTESTFLAGS) $(TESTFLAGS)
+
# Clean targets. You can clean each architecture individually, or everything.
 $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)):
        rm -f $(OUTDIR)/Makefile.$(basename $@)
Index: tools/run-tests.py
diff --git a/tools/run-tests.py b/tools/run-tests.py
index 79095f6359187905ddb80e3c2bc6b83469e4bb1c..bdb972b66cd6135590e222b1270532982602579b 100755
--- a/tools/run-tests.py
+++ b/tools/run-tests.py
@@ -28,6 +28,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


+import itertools
 import multiprocessing
 import optparse
 import os
@@ -183,9 +184,10 @@ def ProcessOptions(options):

   # Architecture and mode related stuff.
   if options.arch_and_mode:
-    tokens = options.arch_and_mode.split(".")
-    options.arch = tokens[0]
-    options.mode = tokens[1]
+    options.arch_and_mode = [arch_and_mode.split(".")
+        for arch_and_mode in options.arch_and_mode.split(",")]
+ options.arch = ",".join([tokens[0] for tokens in options.arch_and_mode]) + options.mode = ",".join([tokens[1] for tokens in options.arch_and_mode])
   options.mode = options.mode.split(",")
   for mode in options.mode:
     if not mode.lower() in ["debug", "release"]:
@@ -199,6 +201,11 @@ def ProcessOptions(options):
       print "Unknown architecture %s" % arch
       return False

+  # Store the final configuration in arch_and_mode list. Don't overwrite
+  # predefined arch_and_mode since it is more expressive as arch and mode.
+  if not options.arch_and_mode:
+    options.arch_and_mode = itertools.product(options.arch, options.mode)
+
   # Special processing of other options, sorted alphabetically.

   if options.buildbot:
@@ -313,10 +320,9 @@ def Main():
     for s in suites:
       s.DownloadData()

-  for mode in options.mode:
-    for arch in options.arch:
-      code = Execute(arch, mode, args, options, suites, workspace)
-      exit_code = exit_code or code
+  for (arch, mode) in options.arch_and_mode:
+    code = Execute(arch, mode, args, options, suites, workspace)
+    exit_code = exit_code or code
   return exit_code




--
--
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