GNU bug report logs -
#29638
RHEL7 'Getopt::Long' perl module provokes some test failures
Previous Next
Reported by: Dennis Clarke <dclarke <at> blastwave.org>
Date: Sun, 10 Dec 2017 05:45:02 UTC
Severity: normal
Tags: fixed, patch
Done: Mathieu Lirzin <mthl <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hello,
Mathieu Lirzin <mthl <at> gnu.org> writes:
> Dennis Clarke <dclarke <at> blastwave.org> writes:
>
>> The five failed tests are :
>>
>> FAIL: t/aclocal.sh
>> FAIL: t/automake-cmdline.tap 4 - list of options terminated by '--' (stderr)
>> FAIL: t/automake-cmdline.tap 17 - unambiguous incomplete long option
>> FAIL: t/maken3.sh
>> FAIL: t/maken3-w.sh
>
> My impression is that those failing tests are checking the edge cases
> of Getopt::Long which is system dependent and not the functional
> behavior of Automake. As a consequence it seems reasonable to narrow
> the tests to more conservative Getopt::Long behaviors.
Here is a patch that should fix this issue.
[0001-tests-Don-t-check-Getopt-Long-corner-cases.patch (text/x-patch, inline)]
From 83d5d37bc8f0adb0e20a6fe7ab68029d2479dd32 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl <at> gnu.org>
Date: Thu, 18 Jan 2018 11:19:13 +0100
Subject: [PATCH] tests: Don't check 'Getopt::Long' corner cases
Depending on the installed 'Getopt::Long' perl module, command-line
handling may vary a bit. As a consequence we prefer not to check
command-line corners cases. This change fixes automake bug#29638.
* t/aclocal.sh (am_create_testdir): Don't expect "--versi" to be
interpreted as "--version".
* t/automake-cmdline.tap: Don't expect "--vers" to be interpreted as
"--version" and things after "--" to be interpreted as file arguments.
(do_check): Display the actual command output.
* t/maken3.sh (check_targets): "--force" is not a documented option, so
don't use it.
---
t/aclocal.sh | 2 --
t/automake-cmdline.tap | 13 ++-----------
t/maken3.sh | 2 +-
3 files changed, 3 insertions(+), 14 deletions(-)
diff --git a/t/aclocal.sh b/t/aclocal.sh
index 8cc8d5cc3..008493d5d 100644
--- a/t/aclocal.sh
+++ b/t/aclocal.sh
@@ -58,6 +58,4 @@ cat stderr >&2
grep 'unrecognized option.*--ver' stderr
grep '[Tt]ry.*--help.*for more information' stderr
-$ACLOCAL --versi
-
:
diff --git a/t/automake-cmdline.tap b/t/automake-cmdline.tap
index c4441efe6..306231faa 100644
--- a/t/automake-cmdline.tap
+++ b/t/automake-cmdline.tap
@@ -18,7 +18,7 @@
. test-init.sh
-plan_ 17
+plan_ 14
# Usage: bad_cmdline DESCRIPTION REGEX-FOR-STDERR [ARGS-FOR-AUTOMAKE...]
do_check ()
@@ -28,18 +28,11 @@ do_check ()
regex=$1; shift
AUTOMAKE_fails -d "$desc (run)" -- "$@"
command_ok_ "$desc (stderr)" grep "$regex" stderr
+ cat stderr
}
do_check 'invalid long option' 'unrecognized option.*--voo' --voo
-# Older perl has a buggy Getopt::Long which makes this fail.
-if $PERL -e 'require 5.8.2;'; then
- do_check "list of options terminated by '--'" \
- 'input file.*--voo' -- --voo
-else
- skip_row_ 2 -r "older perl with buggy Getopt::Long"
-fi
-
do_check "empty argument" \
'empty argument' ''
@@ -58,6 +51,4 @@ do_check "'--help' as option argument" \
do_check "ambiguous incomplete option" \
'unrecognized option.*--ver' --ver
-command_ok_ "unambiguous incomplete long option" $AUTOMAKE --vers
-
:
diff --git a/t/maken3.sh b/t/maken3.sh
index c37743cb7..8fe1d3269 100644
--- a/t/maken3.sh
+++ b/t/maken3.sh
@@ -181,7 +181,7 @@ check_targets || exit 1
# TODO: add BUILT_SOURCES to sub2, fix fallout.
sed 's/##//' < Makefile.am > t
mv -f t Makefile.am
-$AUTOMAKE -Wno-override --force Makefile
+$AUTOMAKE -Wno-override Makefile
./configure
check_targets || exit 1
--
2.15.1
[Message part 3 (text/plain, inline)]
Can you confirm this works on your system?
--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
This bug report was last modified 7 years and 76 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.