Index: tools/test.py |
diff --git a/tools/test.py b/tools/test.py |
index 3a6f55bc26117d704e5b9855c6fed16882af7735..951afcc85da02791a0d95cbf636858a98257442f 100755 |
--- a/tools/test.py |
+++ b/tools/test.py |
@@ -631,9 +631,15 @@ class TestRepository(TestSuite): |
def GetBuildRequirements(self, path, context): |
return self.GetConfiguration(context).GetBuildRequirements() |
+ def DownloadData(self, context): |
+ config = self.GetConfiguration(context) |
+ if 'DownloadData' in dir(config): |
+ config.DownloadData() |
+ |
def AddTestsToList(self, result, current_path, path, context, mode): |
- for v in self.GetConfiguration(context).VariantFlags(): |
- tests = self.GetConfiguration(context).ListTests(current_path, path, mode, v) |
+ config = self.GetConfiguration(context) |
+ for v in config.VariantFlags(): |
+ tests = config.ListTests(current_path, path, mode, v) |
for t in tests: t.variant_flags = v |
result += tests |
@@ -655,6 +661,12 @@ class LiteralTestSuite(TestSuite): |
result += test.GetBuildRequirements(rest, context) |
return result |
+ def DownloadData(self, path, context): |
+ (name, rest) = CarCdr(path) |
+ for test in self.tests: |
+ if not name or name.match(test.GetName()): |
+ test.DownloadData(context) |
+ |
def ListTests(self, current_path, path, context, mode, variant_flags): |
(name, rest) = CarCdr(path) |
result = [ ] |
@@ -1192,6 +1204,8 @@ def BuildOptions(): |
default='scons') |
result.add_option("--report", help="Print a summary of the tests to be run", |
default=False, action="store_true") |
+ result.add_option("--download-data", help="Download missing test suite data", |
+ default=False, action="store_true") |
result.add_option("-s", "--suite", help="A test suite", |
default=[], action="append") |
result.add_option("-t", "--timeout", help="Timeout in seconds", |
@@ -1462,6 +1476,11 @@ def Main(): |
root.GetTestStatus(context, sections, defs) |
config = Configuration(sections, defs) |
+ # Download missing test suite data if requested. |
+ if options.download_data: |
+ for path in paths: |
+ root.DownloadData(path, context) |
+ |
# List the tests |
all_cases = [ ] |
all_unused = [ ] |