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.