def test_parse_output_with_failing_line(self): output = DriverOutput(""" Running 20 times Ignoring warm-up run (1115) some-unrecognizable-line Time: values 1080, 1120, 1095, 1101, 1104 ms avg 1100 ms median 1101 ms stdev 14.50862 ms min 1080 ms max 1120 ms """, image=None, image_hash=None, audio=None) output_capture = OutputCapture() output_capture.capture_output() try: test = PerfTest(MockPort(), 'some-test', '/path/some-dir/some-test') test._filter_output(output) self.assertEqual(test.parse_output(output), None) finally: actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() self.assertEqual(actual_stdout, '') self.assertEqual(actual_stderr, '') self.assertEqual(actual_logs, 'ERROR: some-unrecognizable-line\n')
def test_parse_output_with_failing_line(self): output = DriverOutput('\n'.join([ 'Running 20 times', 'Ignoring warm-up run (1115)', '', 'some-unrecognizable-line', '', 'Time:', 'values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ms', 'avg 1100 ms', 'median 1101 ms', 'stdev 11 ms', 'min 1080 ms', 'max 1120 ms']), image=None, image_hash=None, audio=None) output_capture = OutputCapture() output_capture.capture_output() try: test = PerfTest(MockPort(), 'some-test', '/path/some-dir/some-test') test._filter_output(output) self.assertEqual(test.parse_output(output), None) finally: actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() self.assertEqual(actual_stdout, '') self.assertEqual(actual_stderr, '') self.assertEqual(actual_logs, 'ERROR: some-unrecognizable-line\n')
def test_parse_output(self): output = DriverOutput('\n'.join([ 'Running 20 times', 'Ignoring warm-up run (1115)', '', 'Time:', 'values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ms', 'avg 1100 ms', 'median 1101 ms', 'stdev 11 ms', 'min 1080 ms', 'max 1120 ms']), image=None, image_hash=None, audio=None) output_capture = OutputCapture() output_capture.capture_output() try: test = PerfTest(MockPort(), 'some-test', '/path/some-dir/some-test') test._filter_output(output) self.assertEqual(test.parse_output(output), {'some-test': {'avg': 1100.0, 'median': 1101.0, 'min': 1080.0, 'max': 1120.0, 'stdev': 11.0, 'unit': 'ms', 'values': [i for i in range(1, 20)]}}) finally: pass actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() self.assertEqual(actual_stdout, '') self.assertEqual(actual_stderr, '') self.assertEqual(actual_logs, '')
def test_parse_output_with_failing_line(self): output = DriverOutput(""" Running 20 times Ignoring warm-up run (1115) some-unrecognizable-line Time: values 1080, 1120, 1095, 1101, 1104 ms avg 1100 ms median 1101 ms stdev 14.50862 ms min 1080 ms max 1120 ms """, image=None, image_hash=None, audio=None) output_capture = OutputCapture() output_capture.capture_output() try: test = PerfTest(MockPort(), 'some-test', '/path/some-dir/some-test') test._filter_output(output) self.assertIsNone(test.parse_output(output)) finally: actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() self.assertEqual(actual_stdout, '') self.assertEqual(actual_stderr, '') self.assertEqual(actual_logs, 'ERROR: some-unrecognizable-line\n')
def test_ignored_stderr_lines(self): test = PerfTest(MockPort(), 'some-test', '/path/some-dir/some-test') output_with_lines_to_ignore = DriverOutput('', image=None, image_hash=None, audio=None, error=""" Unknown option: --foo-bar Should not be ignored [WARNING:proxy_service.cc] bad moon a-rising [WARNING:chrome.cc] Something went wrong [INFO:SkFontHost_android.cpp(1158)] Use Test Config File Main /data/local/tmp/drt/android_main_fonts.xml, Fallback /data/local/tmp/drt/android_fallback_fonts.xml, Font Dir /data/local/tmp/drt/fonts/ [ERROR:main.cc] The sky has fallen""") test._filter_output(output_with_lines_to_ignore) self.assertEqual(output_with_lines_to_ignore.error, "Should not be ignored\n" "[WARNING:chrome.cc] Something went wrong\n" "[ERROR:main.cc] The sky has fallen")