From 79f7328d6a010e56c28eb9442b61931cf13b04e6 Mon Sep 17 00:00:00 2001 From: Luke Drummond Date: Thu, 18 Feb 2021 19:54:55 +0000 Subject: [TAP] Fix TAP parser when test exits with status Some time between 0.56 and 0.57 the TAP parser broke when a test exits with a nonzero status. The TAP protocol does not specify this behaviour - giving latitude to implementers, and meson's previous behaviour was to report the exit status gracefully. This patch restores the old behaviour and adds a regression test --- test cases/failing test/5 tap tests/meson.build | 4 +++- test cases/failing test/5 tap tests/tester_with_status.c | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 test cases/failing test/5 tap tests/tester_with_status.c (limited to 'test cases') diff --git a/test cases/failing test/5 tap tests/meson.build b/test cases/failing test/5 tap tests/meson.build index c49043b..664ac34 100644 --- a/test cases/failing test/5 tap tests/meson.build +++ b/test cases/failing test/5 tap tests/meson.build @@ -1,7 +1,9 @@ project('test features', 'c') tester = executable('tester', 'tester.c') -test('nonzero return code', tester, args : [], protocol: 'tap') +test_with_status = executable('test-with-status', 'tester_with_status.c') +test('nonzero return code no tests', tester, args : [], protocol: 'tap') +test('nonzero return code with tests', test_with_status, protocol: 'tap') test('missing test', tester, args : ['1..1'], protocol: 'tap') test('incorrect skip', tester, args : ['1..1 # skip\nok 1'], protocol: 'tap') test('partially skipped', tester, args : ['not ok 1\nok 2 # skip'], protocol: 'tap') diff --git a/test cases/failing test/5 tap tests/tester_with_status.c b/test cases/failing test/5 tap tests/tester_with_status.c new file mode 100644 index 0000000..7613afe --- /dev/null +++ b/test cases/failing test/5 tap tests/tester_with_status.c @@ -0,0 +1,8 @@ +#include +#include + +int main(int argc, char **argv) { + puts("1..1"); + puts("not ok 1 - some test"); + return 2; +} -- cgit v1.1