10.11.2013 20:09, Michael Tokarev wrote:
10.11.2013 19:39, Michael Tokarev wrote:
10.11.2013 19:25, Michael Tokarev wrpte:
Another question/issue with the testsuite.
'
The testsuite uses ${var/search/replace} construct
heavily.  It is implemented in bash and in busybox
ash, but not, for example, in dash, and it is not
in POSIX either.

So when the system /bin/sh does not implement this
construct, los of tests fails like this:

Actually there are just 2 places which are trivial to fix,
and the following patch does just that.

Actually there are more of these, and the original patch
was wrong.  Applied is another version which actually
works (and tested) and fixes more places, together with
$((n++) and `type -p'.

Attached, not applied.  Actually attached now :)

With these changes, I can now run the testsuite on default
debian install.

Thanks,

/mjt

From: Michael Tokarev <m...@tls.msk.ru>
Subject: fix bashisms in testsuite/

These places use ${var/search/replace}, $((n++) and
`type -p' constructs which are not-so-standard.
Replace with equivalent constructs.

Signed-off-by: Michael Tokarev <m...@tls.msk.ru>

diff --git a/testsuite/hostid/hostid-works b/testsuite/hostid/hostid-works
index bcfd717..8c20bdf 100644
--- a/testsuite/hostid/hostid-works
+++ b/testsuite/hostid/hostid-works
@@ -1,8 +1,6 @@
 h=x$(busybox hostid)
 # Is $h a sequence of hex numbers?
-x="${h//[0123456789abcdef]/x}"
-x="${x//xxx/x}"
-x="${x//xxx/x}"
-x="${x//xxx/x}"
-x="${x//xx/x}"
-test x"$x" = x"x"
+case "$h" in
+ x*[!0-9a-f]*) false;;
+ *) true;;
+esac
diff --git a/testsuite/md5sum.tests b/testsuite/md5sum.tests
index 1068b08..1680cf4 100755
--- a/testsuite/md5sum.tests
+++ b/testsuite/md5sum.tests
@@ -30,7 +30,7 @@ result=`(
 n=0
 while test $n -le 999; do
 	echo "$text" | head -c $n | "$sum"
-	: $((n++))
+	n=$(($n+1))
 done | "$sum"
 )`
 
diff --git a/testsuite/testing.sh b/testsuite/testing.sh
index e7e64e5..f5b7569 100644
--- a/testsuite/testing.sh
+++ b/testsuite/testing.sh
@@ -56,10 +56,10 @@ optional()
 {
 	SKIP=
 	while test "$1"; do
-		if test x"${OPTIONFLAGS/*:$1:*/y}" != x"y"; then
-			SKIP=1
-			return
-		fi
+		case "${OPTIONFLAGS}" in
+			*:$1:*) ;;
+			*) SKIP=1; return ;;
+		esac
 		shift
 	done
 }
diff --git a/testsuite/which/which-uses-default-path b/testsuite/which/which-uses-default-path
index 63ceb9f..1b3ac66 100644
--- a/testsuite/which/which-uses-default-path
+++ b/testsuite/which/which-uses-default-path
@@ -1,4 +1,4 @@
-BUSYBOX=$(type -p busybox)
+BUSYBOX=$(command -pv busybox)
 SAVED_PATH=$PATH
 unset PATH
 $BUSYBOX which ls
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to