Re: testsuite and bashisms

2013-11-10 Thread Michael Tokarev

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.

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

Thanks,

/mjt
From: Michael Tokarev m...@tls.msk.ru
Subject: fix bashisms in testsuite/testing.sh and testsuite/hostid/hostid-works

These places use ${var/search/replace} construct which is non-standard.
Replace it 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 = xx
+case $h in
+ x*[!0-9a-f]*) false;;
+ *) true;;
+esac
diff --git a/testsuite/testing.sh b/testsuite/testing.sh
index e7e64e5..84e00d1 100644
--- a/testsuite/testing.sh
+++ b/testsuite/testing.sh
@@ -56,10 +56,9 @@ optional()
 {
 	SKIP=
 	while test $1; do
-		if test x${OPTIONFLAGS/*:$1:*/y} != xy; then
-			SKIP=1
-			return
-		fi
+		case ${OPTIONFLAGS} in
+			*:$1:*) SKIP=1; return;;
+		esac
 		shift
 	done
 }
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Re: testsuite and bashisms

2013-11-10 Thread Michael Tokarev

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'.

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

Thanks,

/mjt
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: testsuite and bashisms

2013-11-10 Thread Michael Tokarev

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 = xx
+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} != xy; 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

Re: testsuite and bashisms

2013-11-10 Thread Bernhard Reutner-Fischer
On 10 November 2013 17:19, Michael Tokarev m...@tls.msk.ru wrote:
 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,

LGTM, applied.
thanks,
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox