diff --git a/mx.fastr/mx_fastr_pkgs.py b/mx.fastr/mx_fastr_pkgs.py index 5cf1192b8c8b7b324ead76cb0b890efae0188e79..154674181d752077f751528184dda9282ac84ef0 100644 --- a/mx.fastr/mx_fastr_pkgs.py +++ b/mx.fastr/mx_fastr_pkgs.py @@ -556,9 +556,9 @@ def handle_output_file(file, test_output_file_contents): if "testthat results" in test_output_file_contents[i]: mx.log("Detected testthat summary in {!s}".format(file)) return _parse_testthat_result(test_output_file_contents, i) - - # TODO parse RUnit test protocol - + elif "RUNIT TEST PROTOCOL" in test_output_file_contents[i]: + mx.log("Detected RUNIT test protocol in {!s}".format(file)) + return _parse_runit_result(test_output_file_contents, i) # if this test did not use one of the known test frameworks, take the report from the fuzzy compare return None, None, None @@ -579,6 +579,20 @@ def _parse_testthat_result(lines, i): return (_testthat_parse_part(ok_part), _testthat_parse_part(skipped_part), _testthat_parse_part(failed_part)) raise Exception("Could not parse testthat status line {0}".format(result_line)) + +def _parse_runit_result(lines, i): + ''' + RUNIT TEST PROTOCOL -- Thu Feb 08 10:54:42 2018 + *********************************************** + Number of test functions: 20 + Number of errors: 0 + Number of failures: 0 + :param lines: + :param i: + :return: + ''' + + def _testthat_parse_part(part): ''' parses a part like "OK: 2"