ash-signals/savetrap.tests While trying to port some fixes from dash, one of them broke some signal handling testcases. I guess some of things we test for are not tested by dash developers. I ran entire ash testsuite against dash, deleted failing things which dash does not support (some bashisms), and false positives caused by differences in error messages. What's left is: ash-glob/glob2.tests: Evidently, dash supports \f -> ^L escape. This test uses \f as invalid backslash escape, hence differences. ash-misc/echo_write_error.tests EPIPE errors in echo are not reported ash-misc/func2.tests $((i++)) not supported ash-misc/local1.tests Doesn't unset as described: local a # the above line unsets $a echo "A2:'$a'" ash-misc/shift1.tests "shift N" fails if fewer than N argv[i] exists (likely not a bug, but bash does it differently) ash-redir/redir.tests echo errors due to closed stdout are not reported ash-redir/redir3.tests "echo foo >&9" correctly says "9: Bad file descriptor" and exitcode is 2 (in bash, it is 1). ash-redir/redir7.tests ash-redir/redir8.tests uni\x81code filename is not found by uni?code glob pattern. ash-signals/reap1.tests Builtins never wait for children. This loop will not ever stop: sleep 1 & PID=$! while kill -0 $PID >/dev/null 2>&1; do true done ash-signals/savetrap.tests `trap` does not work as expected ash-signals/sigint1.tests trap "exit 0" SIGINT - does not like name "SIGINT". "INT" works. ash-signals/signal4.tests trap "echo Trapped" BADNAME TERM - abort seeing BADNAME. bash complains, but sets the trap for the second signal. ash-signals/signal8.tests "kill %1" in non-interactive shell does not find previously backgrounded task. ash-vars/var-utf8-length.tests ${#VAR} counts unicode chars in bash ash-vars/var_unbackslash.tests b=-$a-\t-\\-\"-\`-\--\z-\*-\?- b="-$a-\t-\\-\"-\`-\--\z-\*-\?-" b='-$a-\t-\\-\"-\`-\--\z-\*-\?-' b1=$b "b1=$b" You can imagine... not everything went well here... ash-vars/var_unbackslash.tests echo Forty two:$\ (\ (\ 42\ )\ ) dash says: Syntax error: Missing '))' The tarball is attached. Unpack, add an ash -> /path/to/your/dash symlink, then run ./run-all