GNU bug report logs - #10440
Can't locate TAP/Parser.pm

Previous Next

Package: automake;

Reported by: Peter Rosin <peda <at> lysator.liu.se>

Date: Thu, 5 Jan 2012 21:59:01 UTC

Severity: normal

Tags: patch

Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 10440 in the body.
You can then email your comments to 10440 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-automake <at> gnu.org:
bug#10440; Package automake. (Thu, 05 Jan 2012 21:59:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Peter Rosin <peda <at> lysator.liu.se>:
New bug report received and forwarded. Copy sent to bug-automake <at> gnu.org. (Thu, 05 Jan 2012 21:59:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Peter Rosin <peda <at> lysator.liu.se>
To: bug-automake <at> gnu.org
Subject: Can't locate TAP/Parser.pm
Date: Thu, 05 Jan 2012 22:54:52 +0100
Hi!

I tried make check on MSYS with the current master, and among other
things, this problem stands out as it FAILs so many test cases.

I'm using tap-bailout-w.test as an example, no use reporting the
same problem 80+ times, right :-)

The perl version is 5.8.8

Here's tap-bailout-w.log:

./tap-bailout-w.test: will source ./tap-bailout.test
Running from installcheck: no
Using TAP: no
PATH = /home/peda/automake/tests:/c/Program Files (x86)/Microsoft F#/v4.0/:/c/Program Files (x86)/Microsoft Visual Studio 10.0/VSTSDB/Deploy:/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/:/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN:/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/Tools/:/c/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Windows/Microsoft.NET/Framework/v3.5:/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/VCPackages:/c/Program Files (x86)/HTML Help Workshop:/c/Program Files (x86)/Microsoft Visual Studio 10.0/Team Tools/Performance Tools:/c/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/bin/NETFX 4.0 Tools:.:/usr/local/bin:/mingw/bin:/bin:/c/Program Files/Common Files/Microsoft Shared/Windows Live:/c/Program Files (x86)/Common Files/Microsoft Shared/Windows Live:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/
+++ pwd
/home/peda/automake/tests/tap-bailout-w.dir
++ . /home/peda/automake/tests/tap-setup.sh
+++ test -f ../defs-static
+++ test -f ../defs
+++ test '!' -f Makefile.am
+++ test -d ../tap-common-setup.dir
+++ cp -Rp ../tap-common-setup.dir/Makefile ../tap-common-setup.dir/Makefile.am ../tap-common-setup.dir/Makefile.in ../tap-common-setup.dir/aclocal.m4 ../tap-common-setup.dir/config.log ../tap-common-setup.dir/config.status ../tap-common-setup.dir/configure ../tap-common-setup.dir/configure.in ../tap-common-setup.dir/depcomp ../tap-common-setup.dir/install-sh ../tap-common-setup.dir/missing .
+++ fetch_tap_driver
+++ case $am_tap_implementation in
+++ sed '1s|#!.*|#! /bin/perl -w|' /home/peda/automake/lib/tap-driver.pl
+++ chmod a+x tap-driver
+++ sed 10q tap-driver
#! /bin/perl -w
# Copyright (C) 2011 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
+++ test -f Makefile.am~
+++ :
++ :
++ cat
++ cat
++ cat
++ cat
++ cat
++ cat
++ cat
++ echo 'ERROR: d.test - Bail out! mktemp -d: Permission denied'
++ cat
++ echo 'ERROR: e.test - Bail out!'
++ test_counts='total=12 pass=3 fail=1 xpass=1 xfail=1 skip=1 error=5'
++ TESTS='a.test b.test c.test d.test e.test'
++ make -e check
Can't locate TAP/Parser.pm in @INC (@INC contains: /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at ./tap-driver line 33.
BEGIN failed--compilation aborted at ./tap-driver line 33.
make[2]: *** [a.log] Error 2
make[1]: *** [check-TESTS] Error 2
make: *** [check-am] Error 2
++ cat stdout
make  check-TESTS
make[1]: Entering directory `/home/peda/automake/tests/tap-bailout-w.dir'
make[2]: Entering directory `/home/peda/automake/tests/tap-bailout-w.dir'
make[2]: Leaving directory `/home/peda/automake/tests/tap-bailout-w.dir'
make[1]: Leaving directory `/home/peda/automake/tests/tap-bailout-w.dir'
++ count_test_results total=12 pass=3 fail=1 xpass=1 xfail=1 skip=1 error=5
++ total=ERR
++ pass=ERR
++ fail=ERR
++ xpass=ERR
++ xfail=ERR
++ skip=ERR
++ error=ERR
++ eval total=12 pass=3 fail=1 xpass=1 xfail=1 skip=1 error=5
+++ total=12
+++ pass=3
+++ fail=1
+++ xpass=1
+++ xfail=1
+++ skip=1
+++ error=5
++ /bin/grep -E -i '(total|x?pass|x?fail|skip|error)' stdout
++ :
++ rc=0
++ set +e
+++ grep -c '^PASS:' stdout
++ test 0 -eq 3
++ rc=1
+++ grep -c '^XFAIL:' stdout
++ test 0 -eq 1
++ rc=1
+++ grep -c '^SKIP:' stdout
++ test 0 -eq 1
++ rc=1
+++ grep -c '^FAIL:' stdout
++ test 0 -eq 1
++ rc=1
+++ grep -c '^XPASS:' stdout
++ test 0 -eq 1
++ rc=1
+++ grep -c '^ERROR:' stdout
++ test 0 -eq 5
++ rc=1
++ grep '^# TOTAL:  *12$' stdout
++ rc=1
++ grep '^# PASS:  *3$' stdout
++ rc=1
++ grep '^# XFAIL:  *1$' stdout
++ rc=1
++ grep '^# SKIP:  *1$' stdout
++ rc=1
++ grep '^# FAIL:  *1$' stdout
++ rc=1
++ grep '^# XPASS:  *1$' stdout
++ rc=1
++ grep '^# ERROR:  *5$' stdout
++ rc=1
++ test 1 -eq 0
+ exit_status=1
+ set +e
+ cd /home/peda/automake/tests
+ test no = yes
+ case $am_explicit_skips in
+ test 1 -eq 0
+ keep_testdirs=yes
+ am_keeping_testdirs
+ case $keep_testdirs in
+ return 0
+ set +x
tap-bailout-w: exit 1




Information forwarded to bug-automake <at> gnu.org:
bug#10440; Package automake. (Fri, 06 Jan 2012 12:39:01 GMT) Full text and rfc822 format available.

Message #8 received at 10440 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Peter Rosin <peda <at> lysator.liu.se>
Cc: automake-patches <at> gnu.org, 10440 <at> debbugs.gnu.org
Subject: Re: bug#10440: Can't locate TAP/Parser.pm
Date: Fri, 06 Jan 2012 13:34:51 +0100
[Message part 1 (text/plain, inline)]
On 01/05/2012 10:54 PM, Peter Rosin wrote:
> Hi!
>
Hi Peter, and thanks for your relentless testing on MinGW/MSYS.

> I tried make check on MSYS with the current master, and among other
> things, this problem stands out as it FAILs so many test cases.
> 
> I'm using tap-bailout-w.test as an example, no use reporting the
> same problem 80+ times, right :-)
> 
> The perl version is 5.8.8
> 
> Here's tap-bailout-w.log:
> 
> ./tap-bailout-w.test: will source ./tap-bailout.test
> Running from installcheck: no
> Using TAP: no
>
> [SNIP]
>
> ++ TESTS='a.test b.test c.test d.test e.test'
> ++ make -e check
> Can't locate TAP/Parser.pm in @INC (@INC contains: /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at ./tap-driver line 33.
> BEGIN failed--compilation aborted at ./tap-driver line 33.
> make[2]: *** [a.log] Error 2
> make[1]: *** [check-TESTS] Error 2
> make: *** [check-am] Error 2
>
Bummer.  I had taken for granted that all perl installations modern enough
to correctly run automake also came with a built-int TAP::Parser module --
but it seems this is not the case after all.

Anyway, since the perl implementation of the TAP driver is meant to be
used only for prototyping and consistency checks (the "real" TAP driver
being the portable one implemented in awk), this is not a big deal, and
we just need to skip the affected tests on systems lacking TAP::Parser.

Could you verify that the attached patch solves the issue?  I've tested
it by putting a broken TAP::Parser early in @INC, so it should work; but
as you know there is no substitute to testing with the "real thing".

Thanks,
  Stefano



[0001-tests-skip-tests-on-perl-TAP-driver-if-TAP-Parser-mo.patch (text/x-diff, attachment)]

Information forwarded to bug-automake <at> gnu.org:
bug#10440; Package automake. (Fri, 06 Jan 2012 15:54:02 GMT) Full text and rfc822 format available.

Message #11 received at 10440 <at> debbugs.gnu.org (full text, mbox):

From: Peter Rosin <peda <at> lysator.liu.se>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: automake-patches <at> gnu.org, 10440 <at> debbugs.gnu.org
Subject: Re: bug#10440: Can't locate TAP/Parser.pm
Date: Fri, 06 Jan 2012 16:50:19 +0100
Stefano Lattarini skrev 2012-01-06 13:34:
> On 01/05/2012 10:54 PM, Peter Rosin wrote:
>> Hi!
>>
> Hi Peter, and thanks for your relentless testing on MinGW/MSYS.
> 
>> I tried make check on MSYS with the current master, and among other
>> things, this problem stands out as it FAILs so many test cases.
>>
>> I'm using tap-bailout-w.test as an example, no use reporting the
>> same problem 80+ times, right :-)

*SNIP*

> Could you verify that the attached patch solves the issue?  I've tested
> it by putting a broken TAP::Parser early in @INC, so it should work; but
> as you know there is no substitute to testing with the "real thing".

Yes, this works, loads of SKIPs instead of FAILs, as expected (but
I haven't checked all tests in detail since there's still too much
noise). Please push anyway as it's a huge improvement even if there
is some minor perl-tap thing left behind, and thanks for the quick
fix!

Cheers,
Peter




Information forwarded to bug-automake <at> gnu.org:
bug#10440; Package automake. (Fri, 06 Jan 2012 17:42:01 GMT) Full text and rfc822 format available.

Message #14 received at 10440 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Peter Rosin <peda <at> lysator.liu.se>
Cc: automake-patches <at> gnu.org, 10440 <at> debbugs.gnu.org
Subject: Re: bug#10440: Can't locate TAP/Parser.pm
Date: Fri, 06 Jan 2012 18:37:38 +0100
On 01/06/2012 04:50 PM, Peter Rosin wrote:
> Stefano Lattarini skrev 2012-01-06 13:34:
>> On 01/05/2012 10:54 PM, Peter Rosin wrote:
>>> Hi!
>>>
>> Hi Peter, and thanks for your relentless testing on MinGW/MSYS.
>>
>>> I tried make check on MSYS with the current master, and among other
>>> things, this problem stands out as it FAILs so many test cases.
>>>
>>> I'm using tap-bailout-w.test as an example, no use reporting the
>>> same problem 80+ times, right :-)
> 
> *SNIP*
> 
>> Could you verify that the attached patch solves the issue?  I've tested
>> it by putting a broken TAP::Parser early in @INC, so it should work; but
>> as you know there is no substitute to testing with the "real thing".
> 
> Yes, this works, loads of SKIPs instead of FAILs, as expected (but
> I haven't checked all tests in detail since there's still too much
> noise). Please push anyway as it's a huge improvement even if there
> is some minor perl-tap thing left behind, and thanks for the quick
> fix!
>
OK, I've pushed the patch with this improved commit message:

  tests: skip tests on perl TAP driver if TAP::Parser is not available

  We had so far taken for granted that all the perl installations
  modern enough to correctly run automake also came with a built-in
  TAP::Parser module; unfortunately, testing on MinGW/MSYS has
  shown that this is not always true, and that a lot of spurious
  testsuite failures would take place in such a situation (see
  automake bug#10440).

  Luckily, the perl implementation of the Automake TAP driver is
  only meant to be used for prototyping and consistency checks, the
  "real" Automake TAP driver being the portable one implemented in
  awk.  So we can simply skip the affected tests on systems lacking
  TAP::Parser.

  * tests/defs (fetch_tap_driver): Skip the whole test case if
  the desired tap driver implementation is the perl one but the
  TAP::Parser module is unavailable.
  * tests/tap-bad-prog.tap: Adjust order of calls to `plan_' and
  `fetch_tap_driver', to ensure the test is not skipped after the
  TAP plan has been outputted (which would lead to a spurious
  error).
  * tests/tap-bad-signal.tap: Tweak to avoid the need to source the
  `tap-setup.sh' script, as that might cause a test skip too late,
  i.e., after a TAP plan has been already printed.
  * tests/tap-test-number-0.test: Do not force the test to skip
  when the tested TAP driver implementation is not the perl one.
  On the other hand, when it *is* the perl one, skip the test if
  the TAP::Parser module is unavailable.
  * tests/test-driver-cond.test: Skip the part of the test actually
  running "make check" if the TAP::Parser module is unavailable.
  * tests/get-sysconf.test: Also print the version of the
  `TAP::Parser' module, if available.

  Reported by Peter Rosin.

Thanks for all the testing,
  Stefano




Added tag(s) patch. Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Fri, 06 Jan 2012 18:06:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 10440 <at> debbugs.gnu.org and Peter Rosin <peda <at> lysator.liu.se> Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Fri, 06 Jan 2012 18:06:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 04 Feb 2012 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 144 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.