Writing Shell Tests

From SambaWiki
Jump to: navigation, search

Writing shell tests

Avoid writing new shell-based tests

New tests should be written in Python.

This particularly includes:

Avoid bashisms

On many systems (Debian and Ubuntu in particular)


is actually dash not Bash. Therefore use only POSIX sh and avoid Bash specific syntax.

Use helper functions

If your test is in testprogs/blackbox you can use:

. `dirname $0`/subunit.sh
. `dirname $0`/common_test_fns.inc

otherwise you will need to use a ../ path to find these.


testit is the primary test command, testing one particular command for success.

testit "change dc password" $samba4srcdir/scripting/devel/chgtdcpass -s $PROVDIR/etc/smb.conf || failed=`expr $failed + 1`

exit code

The script should exit with the number of failures

exit $failed