GNU bug report logs -
#33817
dejagnu(1) fails to find commands specified with spaces and no arguments
Previous Next
Reported by: jcb62281 <at> gmail.com
Date: Fri, 21 Dec 2018 06:07:02 UTC
Severity: normal
Done: bje <at> air.net.au (Ben Elliston)
Bug is archived. No further changes may be made.
Full log
Message #8 received at 33817 <at> debbugs.gnu.org (full text, mbox):
This patch fixes the problem, without reintroducing the "shift empty
argument list" issue. This was discovered while working on
"dejagnu-report-card".
----
ChangeLog entry:
* dejagnu: Improve command parsing to fix bug #33817. Previously,
the documented equivalence between "multi word command" and
"multi-word-command" did not hold if no arguments were given.
* testsuite/launcher.all/command.exp: Add tests for bug #33817.
----
patch:
----
diff --git a/dejagnu b/dejagnu
index 06efcc7..6cd52f6 100755
--- a/dejagnu
+++ b/dejagnu
@@ -134,7 +134,6 @@ fi
# Remove any leading autoconf platform prefix and the "dejagnu" prefix.
command="$(basename "$0" | sed -e 's/^.*-\?dejagnu-\?//')"
-commext=
while expr $# \> 0 > /dev/null
do
@@ -151,15 +150,12 @@ do
for ext in ${Variants}
do
if test -f "${commdir}/${command}.$ext" ; then
- commext="$commext $ext"
+ break 2
fi
done
if expr "$1" : - > /dev/null ; then
break
fi
- if test -n "$commext" ; then
- break
- fi
if test -n "$1" ; then
command="${command}-$1"
shift
@@ -168,6 +164,14 @@ do
fi
done
+commext=
+for ext in ${Variants}
+do
+ if test -f "${commdir}/${command}.$ext" ; then
+ commext="$commext $ext"
+ fi
+done
+
if test -z "$commext" && test -n "$command" ; then
echo ERROR: could not resolve command "$command"
exit 2
diff --git a/testsuite/launcher.all/command.exp b/testsuite/launcher.all/command.exp
index eb7b219..9e21237 100644
--- a/testsuite/launcher.all/command.exp
+++ b/testsuite/launcher.all/command.exp
@@ -70,6 +70,15 @@ set tests {
"Found subcommand baz-quux with variants: gawk\n"
"Selected variant gawk" }
+ { "#" "bug #33817: ensure that the failure is 'no variant'"
+ " rather than 'could not resolve command'" }
+ { "dejagnu baz-quux is resolved but fails without GNU Awk (bug #33817)"
+ {baz-quux} {GAWK=bogus} 2
+ "ERROR: no variant of baz-quux was selected" }
+ { "dejagnu baz quux is resolved but fails without GNU Awk (bug #33817)"
+ {baz quux} {GAWK=bogus} 2
+ "ERROR: no variant of baz-quux was selected" }
+
{ "#" invalid direct calls }
{ "dejagnu -v bar fails" {-v bar} {} 2
----
-- Jacob
This bug report was last modified 6 years and 238 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.