Chromium Code Reviews| Index: build/android/pylib/instrumentation/instrumentation_test_instance.py |
| diff --git a/build/android/pylib/instrumentation/instrumentation_test_instance.py b/build/android/pylib/instrumentation/instrumentation_test_instance.py |
| index a87f81aeefbc75e9a0f99d6d049178de0758f52c..f7e8280dc805605125da3aa8ef09bae4a0824994 100644 |
| --- a/build/android/pylib/instrumentation/instrumentation_test_instance.py |
| +++ b/build/android/pylib/instrumentation/instrumentation_test_instance.py |
| @@ -140,6 +140,33 @@ def GenerateTestResult(test_name, instr_statuses, start_ms, duration_ms): |
| test_name, result_type, start_ms, duration_ms, log=log) |
| +def GenerateMultiTestResult(errors, statuses): |
|
jbudorick
2015/01/16 22:24:48
This implementation can just be in the test instan
rnephew (Wrong account)
2015/01/16 22:36:38
Done.
|
| + INSTR_STATUS_CODE_START = 1 |
| + results = [] |
| + skip_counter = 1 |
| + for status_code, bundle in statuses: |
| + if status_code != INSTR_STATUS_CODE_START: |
| + # TODO(rnephew): Make skipped tests still output test name. This is only |
|
jbudorick
2015/01/16 22:24:48
What's preventing you from doing this now?
Also,
rnephew (Wrong account)
2015/01/16 22:36:38
I was planning on doing that in its own CL, as to
jbudorick
2015/01/16 22:39:06
Fair enough.
|
| + # there to give skipped tests a unique name so they are counted |
| + if 'test_skipped' in bundle: |
| + test_name = "%s" % skip_counter |
|
jbudorick
2015/01/16 22:24:48
should just be
test_name = str(skip_counter)
rnephew (Wrong account)
2015/01/16 22:36:38
Done.
|
| + skip_counter += 1 |
| + else: |
| + test_name = '%s#%s' % ( |
| + ''.join(bundle.get('class', [''])), |
| + ''.join(bundle.get('test', ['']))) |
| + |
| + results.append( |
| + GenerateTestResult(test_name, [(status_code, bundle)], 0, 0)) |
| + |
| + if len(errors) and errors.pop(0) == 'shortMsg=Native crash': |
|
jbudorick
2015/01/16 22:24:48
I'm not crazy about attempting to match an exact s
rnephew (Wrong account)
2015/01/16 22:36:38
Either am I. But this and longMsg='long version of
jbudorick
2015/01/16 22:39:06
What if we just look for "Native crash" (maybe w/
rnephew (Wrong account)
2015/01/16 22:51:02
Done.
|
| + results.append( |
| + base_test_result.BaseTestResult( |
| + 'Crash detected', base_test_result.ResultType.CRASH)) |
| + |
| + return results |
| + |
| + |
| class InstrumentationTestInstance(test_instance.TestInstance): |
| def __init__(self, args, isolate_delegate, error_func): |
| @@ -270,6 +297,10 @@ class InstrumentationTestInstance(test_instance.TestInstance): |
| self._flags.extend([flag for flag in stripped_lines if flag]) |
| @property |
| + def suite(self): |
| + return 'instrumentation' |
| + |
| + @property |
| def apk_under_test(self): |
| return self._apk_under_test |
| @@ -463,6 +494,10 @@ class InstrumentationTestInstance(test_instance.TestInstance): |
| return ParseAmInstrumentRawOutput(raw_output) |
| @staticmethod |
| + def GenerateMultiTestResult(errors, statuses): |
| + return GenerateMultiTestResult(errors, statuses) |
| + |
| + @staticmethod |
| def GenerateTestResult(test_name, instr_statuses, start_ms, duration_ms): |
| return GenerateTestResult(test_name, instr_statuses, start_ms, duration_ms) |