Index: tools/run-tests.py |
diff --git a/tools/run-tests.py b/tools/run-tests.py |
index 79095f6359187905ddb80e3c2bc6b83469e4bb1c..2344f907ec8e1b910efdea983d79e2cd229a71e5 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 than 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 |