bug-dejagnu
[Top][All Lists]
Advanced

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

bug#47382: runtest doesn't work with Solaris 10 /bin/sh


From: Jacob Bachmeyer
Subject: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
Date: Wed, 14 Apr 2021 23:00:17 -0500
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

Rainer Orth wrote:
[...] here's an excerpt from running

env EXPECT=true TCLSH=true /bin/ksh -x 
/vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all/command/bin/dejagnu
 foo -v -v

+ test -f /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all
/command/share/dejagnu/commands/dejagnu.sh
+ expr foo : -
+ 1> /dev/null
expr: syntax error

Thank you! That identifies the problem. As of commit c95e2e9b567a1c3ca22b2de4fdcdfe4b99ba2a03, the dejagnu launcher script now uses the shell "case" builtin for that pattern match instead of using expr:

8<----
diff --git a/dejagnu b/dejagnu
index 44c8962..9f6ae4b 100755
--- a/dejagnu
+++ b/dejagnu
@@ -152,9 +152,7 @@ command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
while expr $# \> 0 > /dev/null
do
    if test -z "${command}" ; then
-       if expr "$1" : - > /dev/null ; then
-           break
-       fi
+       case $1 in -*) break;; esac
       command="$1"
       shift
    fi
@@ -167,9 +165,7 @@ do
           break 2
       fi
    done
-    if expr "$1" : - > /dev/null ; then
-       break
-    fi
+    case $1 in -*) break;; esac
    if test -n "$1" ; then
       command="${command}-$1"
       shift
8<----


It seems this is no wonder:

expr foo : -

is not in XPG7/POSIX.1 and the autoconf manual explicitly states that
this is an unportable non-POSIX extension.

Can you cite exactly where in the Autoconf manual that is mentioned? The closest that I can find is a recommendation to use `expr X"word" : 'Xregex'` to handle cases where "word" starts with a dash; here Solaris 10 is rejecting a case where "word" is "foo".



-- Jacob





reply via email to

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