[PATCH v1] tester: Prevent crash with json output
Kinsey Moore
kinsey.moore at oarcorp.com
Mon Oct 5 20:41:33 UTC 2020
This fixes an issue with json report output that causes a crash due to
the incorrect object member being accessed for test-too-long. This also
changes treatment of fatal errors to match how they are displayed in the
tester log output and changes "fatal error" to "fatal-error" to better
match the naming of all the other failure types.
---
tester/rt/report.py | 2 +-
tester/rt/test.py | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/tester/rt/report.py b/tester/rt/report.py
index 5f871dc..be8df74 100644
--- a/tester/rt/report.py
+++ b/tester/rt/report.py
@@ -194,7 +194,7 @@ class report(object):
status = 'passed'
self.passed += 1
elif fatal:
- status = 'fatal error'
+ status = 'fatal-error'
self.failed += 1
elif timeout:
status = 'timeout'
diff --git a/tester/rt/test.py b/tester/rt/test.py
index fa9ddf5..9b157e9 100644
--- a/tester/rt/test.py
+++ b/tester/rt/test.py
@@ -235,7 +235,7 @@ def generate_json_report(args, reports, start_time, end_time,
json_log['summary']['indeterminate_count'] = reports.indeterminate
json_log['summary']['benchmark_count'] = reports.benchmark
json_log['summary']['timeout_count'] = reports.timeouts
- json_log['summary']['too_long_count'] = reports.too_long
+ json_log['summary']['test-too-long_count'] = reports.test_too_long
json_log['summary']['invalid_count'] = reports.invalids
json_log['summary']['wrong-version_count'] = reports.wrong_version
json_log['summary']['wrong-build_count'] = reports.wrong_build
@@ -247,7 +247,7 @@ def generate_json_report(args, reports, start_time, end_time,
result_types = [
'failed', 'user-input', 'expected-fail', 'indeterminate',
- 'benchmark', 'timeout', 'too-long', 'invalid', 'wrong-version',
+ 'benchmark', 'timeout', 'test-too-long', 'invalid', 'wrong-version',
'wrong-build', 'wrong-tools'
]
json_results = {}
@@ -257,6 +257,9 @@ def generate_json_report(args, reports, start_time, end_time,
# collate results for JSON log
for name in reports.results:
result_type = reports.results[name]['result']
+ # map fatal-error on to failed since the report adds both to the failed count
+ if result_type == "fatal-error":
+ result_type = "failed"
test_parts = name.split("/")
test_category = test_parts[-2]
test_name = test_parts[-1]
@@ -305,7 +308,7 @@ def generate_junit_report(args, reports, start_time, end_time,
junit_prop['indeterminate_count'] = reports.indeterminate
junit_prop['benchmark_count'] = reports.benchmark
junit_prop['timeout_count'] = reports.timeouts
- junit_prop['too_long_count'] = reports.too_long
+ junit_prop['test-too-long_count'] = reports.test_too_long
junit_prop['invalid_count'] = reports.invalids
junit_prop['wrong-version_count'] = reports.wrong_version
junit_prop['wrong-build_count'] = reports.wrong_build
--
2.20.1
More information about the devel
mailing list