diff options
| author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2019-09-20 12:47:50 +0400 |
|---|---|---|
| committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-09-23 13:28:11 -0400 |
| commit | 6a12f3fc16cde79515ce38040421b1a6743bdbb1 (patch) | |
| tree | 5738c5412c5a66136c22ec477ad56cd26c5a55e1 | |
| parent | 6b0c711c912578372f9dcf53c9301fb9f3b167ea (diff) | |
| download | meson-6a12f3fc16cde79515ce38040421b1a6743bdbb1.tar.gz | |
mtest: TAP: ignore empty lines
According to http://testanything.org/tap-specification.html
"Any output line that is not a version, a plan, a test line, a
diagnostic or a bail out is considered an “unknown” line. A TAP parser
is required to not consider an unknown line as an error but may
optionally choose to capture said line and hand it to the test
harness, which may have custom behavior attached [...] TAP::Harness
reports TAP syntax errors at the end of a test run".
(glib gtest can generate empty lines)
| -rw-r--r-- | mesonbuild/mtest.py | 3 | ||||
| -rwxr-xr-x | run_unittests.py | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index 70585f48e..e9bdefdb1 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -299,6 +299,9 @@ class TAPParser: yield self.Version(version=version) continue + if len(line) == 0: + continue + yield self.Error('unexpected input at line %d' % (lineno,)) if state == self._YAML: diff --git a/run_unittests.py b/run_unittests.py index 17ae45e3d..7c79fa315 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -6730,6 +6730,12 @@ class TAPParserTests(unittest.TestCase): self.assert_plan(events, count=1, late=True) self.assert_last(events) + def test_empty_line(self): + events = self.parse_tap('1..1\n\nok 1') + self.assert_plan(events, count=1, late=False) + self.assert_test(events, number=1, name='', result=TestResult.OK) + self.assert_last(events) + def test_unexpected(self): events = self.parse_tap('1..1\ninvalid\nok 1') self.assert_plan(events, count=1, late=False) |
