Andres Freund <and...@anarazel.de> writes: > Hi, > > On 2022-02-13 18:32:59 -0500, Tom Lane wrote: >> Andres Freund <and...@anarazel.de> writes: >> > Best with a >> > central function signalling fatal error, rather than individual uses of die >> > or such. >> >> Huh, doesn't Test::More already provide a sane way to do this? > > I looked, and didn't see anything. But I'm not a perl person, so I might just > have missed something. > >> If not, why isn't die() good enough? (I don't think you can >> realistically expect to prohibit die() anywhere in the TAP tests.)
die()-ing is the correct way to abort a single test script. > The output of dying isn't great either: > > t/000_fail.pl ........................ Dubious, test returned 25 (wstat 6400, > 0x1900) > No subtests run > > it'd be nicer if that that showed the actual reason for failing, rather than > the unhelpful "Dubious, test returned" stuff. It does output the die() message, but it's on stderr, while the harness output is on stdout, so redirections might interfere. $ echo 'use Test::More; die "aieee";' > t/die-immediately.t $ echo 'use Test::More; pass "yay"; die "aieee";' > t/die-after-success.t $ prove --quiet t/die-after-success.t .. 1/? aieee at t/die-after-success.t line 1. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 255 just after 1. t/die-after-success.t .. Dubious, test returned 255 (wstat 65280, 0xff00) All 1 subtests passed t/die-immediately.t .... aieee at t/die-immediately.t line 1. t/die-immediately.t .... Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run > Greetings, > > Andres Freund - ilmari