+++ /dev/null
-hush: syntax error: unterminated "
+++ /dev/null
-# last line has no EOL!
-echo "unterminated
\ No newline at end of file
+++ /dev/null
-TESTzzBEST
-TEST$(echo zz)BEST
-TEST'BEST
+++ /dev/null
-echo "TEST`echo zz;echo;echo`BEST"
-echo "TEST`echo '$(echo zz)'`BEST"
-echo "TEST`echo "'"`BEST"
+++ /dev/null
-read
-cat
-echo "REPLY=$REPLY"
-REPLY=exec <read.tests
+++ /dev/null
-exec <read.tests
-read
-cat
-echo "REPLY=$REPLY"
+++ /dev/null
-./shift.tests abc d e
-./shift.tests d e 123
-./shift.tests d e 123
-./shift.tests
-./shift.tests
-./shift.tests
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" $0 abc "d e" 123
-fi
-echo $0 $1 $2
-shift
-echo $0 $1 $2
-shift 999
-echo $0 $1 $2
-shift 2
-echo $0 $1 $2
-shift 2
-echo $0 $1 $2
-shift
-echo $0 $1 $2
+++ /dev/null
-.1 abc d e f.
-.1.
-.abc.
-.d e f.
-.-1 abc d e f-.
-.-1.
-.abc.
-.d e f-.
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" "$0" 1 abc 'd e f'
-fi
-
-for a in "$*"; do echo ".$a."; done
-for a in "$@"; do echo ".$a."; done
-for a in "-$*-"; do echo ".$a."; done
-for a in "-$@-"; do echo ".$a."; done
+++ /dev/null
-shown
-hush: syntax error: unterminated '
+++ /dev/null
-echo shown
-echo test `echo 'aa`
-echo not shown
+++ /dev/null
-. .
-.abc d e.
-.abc d e.
-.abc d e.
-.abc d e.
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" "$0" abc "d e"
-fi
-
-space=' '
-echo .$space.
-
-a=$*
-echo .$a.
-a=$@
-echo .$a.
-a="$*"
-echo .$a.
-a="$@"
-echo .$a.
+++ /dev/null
-TEST1
-TEST2
-TEST3
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" "$0" abc "d e"
-fi
-
-echo TEST1 >"$1.out"
-echo TEST2 >"$2.out"
-# bash says: "$@.out": ambiguous redirect
-# ash handles it as if it is '$*' - we do the same
-echo TEST3 >"$@.out"
-
-cat abc.out "d e.out" "abc d e.out"
-
-rm abc.out "d e.out" "abc d e.out"
+++ /dev/null
-./: can't execute
-126
+++ /dev/null
-./
-echo $?
+++ /dev/null
-./does_not_exist_for_sure: not found
-127
+++ /dev/null
-./does_not_exist_for_sure
-echo $?
+++ /dev/null
-if test $# = 0; then
- # Child will kill us in 1 second
- "$THIS_SH" "$0" $$ &
-
- # Loop many, many times
- trap 'echo OK; exit 0' 15
- while true; do
- continue
- done
- echo BAD
- exit 1
-fi
-
-sleep 1
-kill $1
+++ /dev/null
-A
-B
-iteration
-C
-A
-B
-iteration
-D
+++ /dev/null
-# Testcase for http://bugs.busybox.net/view.php?id=846
-
-n=0
-while :
-do
- echo A
- while :
- do
- echo B
- break
- done
- echo iteration
- [ $n = 1 ] && break
- echo C
- n=`expr $n + 1`
-done
-echo D
+++ /dev/null
-true
-false; echo `echo $?`
-true
-{ false; echo `echo $?`; }
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" "$0" arg
-fi
-echo OK
+++ /dev/null
-# next line has no EOL!
-echo HELLO
\ No newline at end of file
+++ /dev/null
-# last line has no EOL!
-if true
-then
- echo 1
-else
- echo 2
-fi
\ No newline at end of file
+++ /dev/null
-a=1
-echo "'$a'"
+++ /dev/null
-a=1
-echo ">$a"
+++ /dev/null
-Testing: in $empty""
-..
-Finished
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" quote3.tests abc "d e"
-fi
-
-echo 'Testing: in $empty""'
-empty=''
-for a in $empty""; do echo ".$a."; done
-echo Finished
+++ /dev/null
-a_b='a b'
-echo "$a_b"
+++ /dev/null
-.1.
-.abc.
-.d.
-.e.
-.f.
-.1 abc d e f.
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" star.tests 1 abc 'd e f'
-fi
-# 'd e f' should be split into 3 separate args:
-for a in $*; do echo ".$a."; done
-
-# must produce .1 abc d e f.
-for a in "$*"; do echo ".$a."; done
+++ /dev/null
-http://busybox.net
-http://busybox.net_abc
-1
-1
+++ /dev/null
-URL=http://busybox.net
-
-echo $URL
-echo ${URL}_abc
-
-true
-false; echo $?
-true
-{ false; echo $?; }
+++ /dev/null
-Testing: in x y z
-.x.
-.y.
-.z.
-Testing: in u $empty v
-.u.
-.v.
-Testing: in u " $empty" v
-.u.
-. .
-.v.
-Testing: in u $empty $empty$a v
-.u.
-.a.
-.v.
-Testing: in $a_b
-.a.
-.b.
-Testing: in $*
-.abc.
-.d.
-.e.
-Testing: in $@
-.abc.
-.d.
-.e.
-Testing: in -$*-
-.-abc.
-.d.
-.e-.
-Testing: in -$@-
-.-abc.
-.d.
-.e-.
-Testing: in $a_b -$a_b-
-.a.
-.b.
-.-a.
-.b-.
-Finished
+++ /dev/null
-if test $# = 0; then
- exec "$THIS_SH" var_subst_in_for.tests abc "d e"
-fi
-
-echo 'Testing: in x y z'
-for a in x y z; do echo ".$a."; done
-
-echo 'Testing: in u $empty v'
-empty=''
-for a in u $empty v; do echo ".$a."; done
-
-echo 'Testing: in u " $empty" v'
-empty=''
-for a in u " $empty" v; do echo ".$a."; done
-
-echo 'Testing: in u $empty $empty$a v'
-a='a'
-for a in u $empty $empty$a v; do echo ".$a."; done
-
-echo 'Testing: in $a_b'
-a_b='a b'
-for a in $a_b; do echo ".$a."; done
-
-echo 'Testing: in $*'
-for a in $*; do echo ".$a."; done
-
-echo 'Testing: in $@'
-for a in $@; do echo ".$a."; done
-
-echo 'Testing: in -$*-'
-for a in -$*-; do echo ".$a."; done
-
-echo 'Testing: in -$@-'
-for a in -$@-; do echo ".$a."; done
-
-echo 'Testing: in $a_b -$a_b-'
-a_b='a b'
-for a in $a_b -$a_b-; do echo ".$a."; done
-
-echo Finished
+++ /dev/null
-#!/bin/sh
-
-test -x msh || {
- echo "No ./msh - creating a link to ../../busybox"
- ln -s ../../busybox msh
-}
-
-PATH="$PWD:$PATH" # for msh
-export PATH
-
-THIS_SH="$PWD/msh"
-export THIS_SH
-
-do_test()
-{
- test -d "$1" || return 0
-# echo Running tests in directory "$1"
- (
- cd "$1" || { echo "cannot cd $1!"; exit 1; }
- for x in run-*; do
- test -f "$x" || continue
- case "$x" in
- "$0"|run-minimal|run-gprof) ;;
- *.orig|*~) ;;
- #*) echo $x ; sh $x ;;
- *)
- sh "$x" >"../$1-$x.fail" 2>&1 && \
- { echo "$1/$x: ok"; rm "../$1-$x.fail"; } || echo "$1/$x: fail";
- ;;
- esac
- done
- # Many bash run-XXX scripts just do this,
- # no point in duplication it all over the place
- for x in *.tests; do
- test -x "$x" || continue
- name="${x%%.tests}"
- test -f "$name.right" || continue
-# echo Running test: "$name.right"
- {
- "$THIS_SH" "./$x" >"$name.xx" 2>&1
- diff -u "$name.xx" "$name.right" >"../$1-$x.fail" && rm -f "$name.xx" "../$1-$x.fail"
- } && echo "$1/$x: ok" || echo "$1/$x: fail"
- done
- )
-}
-
-# Main part of this script
-# Usage: run-all [directories]
-
-if [ $# -lt 1 ]; then
- # All sub directories
- modules=`ls -d msh-*`
-
- for module in $modules; do
- do_test $module
- done
-else
- while [ $# -ge 1 ]; do
- if [ -d $1 ]; then
- do_test $1
- fi
- shift
- done
-fi