| Index: tools/run-tests.py
|
| diff --git a/tools/run-tests.py b/tools/run-tests.py
|
| index fd0d2793536e31f825fd7996dababd89c50552a2..6e89a70dc6a3306525560454de2f763569891029 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
|
| @@ -189,9 +190,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"]:
|
| @@ -205,6 +207,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:
|
| @@ -299,14 +306,14 @@ def Main():
|
| suite_paths = utils.GetSuitePaths(join(workspace, "test"))
|
|
|
| if len(args) == 0:
|
| - suite_paths = [ s for s in suite_paths if s in DEFAULT_TESTS ]
|
| + suite_paths = [ s for s in DEFAULT_TESTS if s in suite_paths ]
|
| else:
|
| args_suites = set()
|
| for arg in args:
|
| suite = arg.split(os.path.sep)[0]
|
| if not suite in args_suites:
|
| args_suites.add(suite)
|
| - suite_paths = [ s for s in suite_paths if s in args_suites ]
|
| + suite_paths = [ s for s in args_suites if s in suite_paths ]
|
|
|
| suites = []
|
| for root in suite_paths:
|
| @@ -319,10 +326,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
|
|
|
|
|
|
|