bug-dejagnu
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#33817: PATCH: fix bug #33817


From: Jacob Bachmeyer
Subject: bug#33817: PATCH: fix bug #33817
Date: Fri, 21 Dec 2018 00:20:19 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17 Mnenhy/0.7.6.0

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]