Index: scripts/slave/recipe_modules/test_utils/test_api.py |
diff --git a/scripts/slave/recipe_modules/test_utils/test_api.py b/scripts/slave/recipe_modules/test_utils/test_api.py |
index 1adea8223c3c27a237c6c535bd38b84153576d62..1067b444f2ea1ff2a588abc3c7551e347fcb7cbd 100644 |
--- a/scripts/slave/recipe_modules/test_utils/test_api.py |
+++ b/scripts/slave/recipe_modules/test_utils/test_api.py |
@@ -112,19 +112,11 @@ class TestUtilsTestApi(recipe_test_api.RecipeTestApi): |
ret.retcode = retcode |
return ret |
- def canned_isolated_script_output(self, passing, is_win, swarming=False, |
- shards=1, swarming_internal_failure=False, |
- isolated_script_passing=True, valid=True, |
- missing_shards=[], |
- empty_shards=[], |
- output_chartjson=False, |
- benchmark_enabled=True): |
- """Produces a test results' compatible json for isolated script tests. """ |
+ def generate_simplified_json_results(self, shards, isolated_script_passing, |
+ valid): |
per_shard_results = [] |
- per_shard_chartjson_results = [] |
for i in xrange(shards): |
jsonish_results = {} |
- chartjsonish_results = {} |
jsonish_results['valid'] = valid |
# Keep shard 0's results equivalent to the old code to minimize |
# expectation diffs. |
@@ -138,12 +130,90 @@ class TestUtilsTestApi(recipe_test_api.RecipeTestApi): |
jsonish_results['failures'] = tests_run |
jsonish_results['successes'] = [] |
jsonish_results['times'] = {t : 0.1 for t in tests_run} |
+ per_shard_results.append(jsonish_results) |
+ return per_shard_results |
+ |
+ def generate_json_test_results(self, shards, isolated_script_passing, |
+ valid): |
+ per_shard_results = [] |
+ for i in xrange(shards): |
+ jsonish_results = { |
+ 'interrupted': False, |
+ 'path_delimiter': '.', |
+ 'version': 3, |
+ 'seconds_since_epoch': 14000000 + i, |
+ 'num_failures_by_type': { |
+ 'FAIL': 0, |
+ 'PASS': 0 |
+ } |
+ } |
+ if not valid: |
+ del jsonish_results['path_delimiter'] |
+ idx = 1 + (2 * i) |
+ if isolated_script_passing: |
+ tests_run = { |
+ 'test_common': { |
+ 'Test%d' % idx: { |
+ 'expected': 'PASS', |
+ 'actual': 'FAIL FAIL PASS', |
+ }, |
+ }, |
+ 'test%d' % idx: { |
+ 'Test%d' % idx: { |
+ 'expected': 'PASS', |
+ 'actual': 'PASS', |
+ }, |
+ 'Test%d' % (idx + 1): { |
+ 'expected': 'PASS TIMEOUT', |
+ 'actual': 'TIMEOUT', |
+ }, |
+ } |
+ } |
+ jsonish_results['num_failures_by_type']['PASS'] = 2 |
+ else: |
+ tests_run = { |
+ 'test%d' % idx: { |
+ 'Test%d' % idx: { |
+ 'expected': 'PASS', |
+ 'actual': 'FAIL FAIL TIMEOUT', |
+ }, |
+ 'Test%d' % (idx + 1): { |
+ 'expected': 'PASS TIMEOUT', |
+ 'actual': 'FAIL FAIL FAIL', |
+ }, |
+ } |
+ } |
+ |
+ jsonish_results['num_failures_by_type']['FAIL'] = 2 |
+ jsonish_results['tests'] = tests_run |
+ per_shard_results.append(jsonish_results) |
+ return per_shard_results |
+ |
+ def canned_isolated_script_output(self, passing, is_win, swarming=False, |
+ shards=1, swarming_internal_failure=False, |
+ isolated_script_passing=True, valid=True, |
+ missing_shards=[], |
+ empty_shards=[], |
+ use_json_test_format=False, |
+ output_chartjson=False, |
+ benchmark_enabled=True): |
+ """Produces a test results' compatible json for isolated script tests. """ |
+ per_shard_results = [] |
+ per_shard_chartjson_results = [] |
+ for i in xrange(shards): |
+ chartjsonish_results = {} |
+ idx = 1 + (2 * i) |
chartjsonish_results['dummy'] = 'dummy%d' % i |
chartjsonish_results['enabled'] = benchmark_enabled |
chartjsonish_results['charts'] = {'entry%d' % idx: 'chart%d' % idx, |
'entry%d' % (idx + 1): 'chart%d' % (idx + 1)} |
- per_shard_results.append(jsonish_results) |
per_shard_chartjson_results.append(chartjsonish_results) |
+ if use_json_test_format: |
+ per_shard_results = self.generate_json_test_results( |
+ shards, isolated_script_passing, valid) |
+ else: |
+ per_shard_results = self.generate_simplified_json_results( |
+ shards, isolated_script_passing, valid) |
if swarming: |
jsonish_shards = [] |
files_dict = {} |