GNU bug report logs -
#10418
10 test failures on Fedora 16
Previous Next
Reported by: Jim Meyering <jim <at> meyering.net>
Date: Sun, 1 Jan 2012 15:43:02 UTC
Severity: normal
Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #32 received at 10418 <at> debbugs.gnu.org (full text, mbox):
Stefano Lattarini wrote:
> On 02/02/2012 03:24 PM, Stefano Lattarini wrote:
>> On 02/02/2012 02:57 PM, Stefano Lattarini wrote:
>>> The attached patch should take care of three of the remaining five
>>> failures still present on latest Fedora (see automake bug#10418).
>>> I will push to master shortly if there is no objection.
>>>
>> Hmph, this causes several new and more serious failures. Let's drop
>> this patch. I hope I'll be able to come up with a correct solution
>> in the next days.
>>
> OK, turns out the failures in perl up to 5.12 were due to a limitation in
> the IPC::Open3. So let's keep the patch (slightly adjusted), but relax
> the tests a bit when a "defective" IPC::Open3 is detected. Attached is
> what I'll push shortly if there is no objection.
I've just tested this on Fedora 16, and confirm that
it reduces to two the number of "make check" test failures.
> Subject: [PATCH] tap/perl: handle missing or non-executable scripts better
>
> This change improves how our Perl-based TAP driver handles
> non-runnable test scripts (meaning they might be not executable,
> or not readable, or even not exist). In particular, it makes the
> driver deterministically display a clear "ERROR" result instead
> of possibly dying with diagnostic from 'TAP::Parser' internals,
> and prevents it from displaying spurious "missing TAP plan" errors.
>
> Moreover, with this change, some testsuite failures present only
> with newer perl versions (e.g., 5.14) are fixed. See automake
> bug#10418.
>
> * tests/tap-bad-prog.tap: When testing the perl implementation of
> the TAP driver, and when the perl interpreter offers a good-enough
> 'IPC::Open3::open3' function, expect it not to display spurious
> "missing TAP plan" diagnostic if the error is actually due to a
> non-runnable test script.
> * lib/tap-driver.pl (start): Removed, broken up into ...
> (setup_io): ... this ...
> (setup_parser): ... and this, which now tries to catch and report
> errors in launching the test scripts.
> (finish): New, used by both 'main' and 'setup_parser'.
> (main): Adjust.
...
> # Check that no spurious test results is reported. This is lower-priority
One nit in context:
s/results/result/
> -# (and in fact the check currently fails.
> -command_ok_ 'no spurious results' -D TODO -r 'still get "missing plan"' \
> +# (and in fact the check currently fails for our awk-based driver).
> +directive=
> +if test $am_tap_implementation = shell; then
> + directive=TODO
> +else
> + # Older versions of IPC::Open3 (e.g., version 1.05 on perl 5.12.4 or
> + # version 1.0103 on perl 5.6.2) fails to properly trap errors in exec(2)
One nit in a new comment: s/fails/fail/
> + # calls in the child process; hence, the TAP driver cannot be properly
> + # informed of such error.
> + if $PERL -w -e '
> + use IPC::Open3 qw/open3/;
> + $@ = "";
> + eval { open3(*STDIN, *STDOUT, *STDERR, "am--no-such-command") };
> + $@ =~ m/\bopen3:.*am--no-such-command/
> + or die "Bad \$@ value: \"$@\"\n";
> + '; then
> + : # OK. IPC::Open3 should be good enough.
> + else
> + for s in '"missing plan" message' 'results'; do
> + skip_ -r "IPC::Open3 not good enough" "no spurious $s"
> + done
Perhaps it's just your preferred style, but the quotes around 'results'
are unnecessary, so I would remove them.
This bug report was last modified 13 years and 172 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.