GNU bug report logs - #33817
dejagnu(1) fails to find commands specified with spaces and no arguments

Previous Next

Package: dejagnu;

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):

From: Jacob Bachmeyer <jcb62281 <at> gmail.com>
To: 33817 <at> debbugs.gnu.org
Subject: PATCH: fix bug #33817
Date: Fri, 21 Dec 2018 00:20:19 -0600
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.