Commit 94ea5a19 authored by John Budorick's avatar John Budorick Committed by Commit Bot

android: fix gtest output parsing of type-parameterized tests.

Ran into this while investigating android_browsertests failures on
android-pie-x86-fyi-rel. A failing test w/ a TypeParam was being
incorrectly parsed as UNKNOWN despite clearly failing. This CL fixes
that case.

Change-Id: Iad47e1620b2f0b98348097302ca39a8342e1a116
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2028252
Commit-Queue: John Budorick <jbudorick@chromium.org>
Reviewed-by: default avatarBen Pastene <bpastene@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736462}
parent f55462f7
......@@ -83,8 +83,14 @@ _RE_TEST_STATUS = re.compile(
r'\[ +((?:RUN)|(?:FAILED)|(?:OK)|(?:CRASHED)) +\] ?'
# Test name.
r'([^ ]+)?'
# Optional test parameter.
r'(?:, where GetParam\(\) = [^()]*)?'
# Optional parameters.
r'(?:, where'
# Type parameter
r'(?: TypeParam = [^()]*(?: and)?)?'
# Value parameter
r'(?: GetParam\(\) = [^()]*)?'
# End of optional parameters.
')?'
# Optional test execution time.
r'(?: \((\d+) ms\))?$')
# Crash detection constants.
......
......@@ -177,7 +177,18 @@ class GtestTestInstanceTests(unittest.TestCase):
self.assertEquals(1, actual[0].GetDuration())
self.assertEquals(base_test_result.ResultType.PASS, actual[0].GetType())
def testParseGTestOutput_parameterized(self):
def testParseGTestOutput_typeParameterized(self):
raw_output = [
'[ RUN ] Baz/FooTest.Bar/0',
'[ FAILED ] Baz/FooTest.Bar/0, where TypeParam = (1 ms)',
]
actual = gtest_test_instance.ParseGTestOutput(raw_output, None, None)
self.assertEquals(1, len(actual))
self.assertEquals('Baz/FooTest.Bar/0', actual[0].GetName())
self.assertEquals(1, actual[0].GetDuration())
self.assertEquals(base_test_result.ResultType.FAIL, actual[0].GetType())
def testParseGTestOutput_valueParameterized(self):
raw_output = [
'[ RUN ] Baz/FooTest.Bar/0',
'[ FAILED ] Baz/FooTest.Bar/0,' +
......@@ -189,6 +200,18 @@ class GtestTestInstanceTests(unittest.TestCase):
self.assertEquals(1, actual[0].GetDuration())
self.assertEquals(base_test_result.ResultType.FAIL, actual[0].GetType())
def testParseGTestOutput_typeAndValueParameterized(self):
raw_output = [
'[ RUN ] Baz/FooTest.Bar/0',
'[ FAILED ] Baz/FooTest.Bar/0,' +
' where TypeParam = and GetParam() = (1 ms)',
]
actual = gtest_test_instance.ParseGTestOutput(raw_output, None, None)
self.assertEquals(1, len(actual))
self.assertEquals('Baz/FooTest.Bar/0', actual[0].GetName())
self.assertEquals(1, actual[0].GetDuration())
self.assertEquals(base_test_result.ResultType.FAIL, actual[0].GetType())
def testParseGTestXML_none(self):
actual = gtest_test_instance.ParseGTestXML(None)
self.assertEquals([], actual)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment