2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 4 test suite.
5 # The output of this script is parsed by selftest.pl, which then decides
6 # which of the tests to actually run. It will, for example, skip all tests
7 # listed in samba4-skip or only run a subset during "make quicktest".
9 # The idea is that this script outputs all of the tests of Samba 4, not
10 # just those that are known to pass, and list those that should be skipped
11 # or are known to file in samba4-skip/samba4-knownfail. This makes it
12 # very easy to see what functionality is still missing in Samba 4 and makes
13 # it possible to run the testsuite against other servers, such as Samba 3 or
14 # Windows that have a different set of features.
16 # The syntax for a testsuite is "-- TEST --" on a single line, followed
17 # by the name of the test, the environment it needs and the command to run, all
18 # three separated by newlines. All other lines in the output are considered
34 if [ "$env" = "none" ]; then
37 echo "samba4.$name ($env)"
43 normalize_testname
() {
46 echo $name |
tr "A-Z-" "a-z."
49 plansmbtorturetest
() {
54 modname
=`normalize_testname $name`
55 cmdline
="$VALGRIND $smb4torture $other_args $name"
56 plantest
"$modname" "$env" $cmdline
59 $incdir/..
/bin
/smbtorture
-V
61 samba4srcdir
=$incdir/..
62 samba4bindir
=$samba4srcdir/bin
63 SCRIPTDIR
=$samba4srcdir/..
/testprogs
/ejs
64 smb4torture
="$samba4bindir/smbtorture $TORTURE_OPTIONS"
66 plantest
"js.base" dc "$SCRIPTDIR/base.js" $CONFIGURATION
67 plantest
"js.samr" dc "$SCRIPTDIR/samr.js" $CONFIGURATION ncalrpc
: -U\
$USERNAME%\
$PASSWORD
68 plantest
"js.echo" dc "$SCRIPTDIR/echo.js" $CONFIGURATION ncalrpc
: -U\
$USERNAME%\
$PASSWORD
69 #plantest "ejsnet.js" dc "$SCRIPTDIR/ejsnet.js" $CONFIGURATION -U\$USERNAME%\$PASSWORD \$DOMAIN ejstestuser
70 plantest
"js.ldb" none
"$SCRIPTDIR/ldb.js" `pwd` $CONFIGURATION -d 10
71 plantest
"js.winreg" dc $samba4srcdir/scripting
/bin
/winreg
$CONFIGURATION ncalrpc
: 'HKLM' -U\
$USERNAME%\
$PASSWORD
73 # Simple tests for LDAP and CLDAP
75 for options
in "" "--option=socket:testnonblock=true" "-U\$USERNAME%\$PASSWORD --option=socket:testnonblock=true" "-U\$USERNAME%\$PASSWORD"; do
76 plantest
"ldb.ldap with options $options" dc $samba4srcdir/..
/testprogs
/blackbox
/test_ldb.sh ldap \
$SERVER_IP $options
78 # see if we support ldaps
79 if grep ENABLE_GNUTLS
.1 include
/config.h
> /dev
/null
; then
80 for options
in "" "-U\$USERNAME%\$PASSWORD"; do
81 plantest
"ldb.ldaps with options $options" dc $samba4srcdir/..
/testprogs
/blackbox
/test_ldb.sh ldaps \
$SERVER_IP $options
84 plantest
"ldb.ldapi with options $options" dc $samba4srcdir/..
/testprogs
/blackbox
/test_ldb.sh ldapi \
$PREFIX_ABS/dc
/private
/ldapi
$options
85 for t
in LDAP-CLDAP LDAP-BASIC LDAP-SCHEMA LDAP-UPTODATEVECTOR
87 plansmbtorturetest
"$t" dc "-U\$USERNAME%\$PASSWORD" //\
$SERVER_IP/_none_
90 # only do the ldb tests when not in quick mode - they are quite slow, and ldb
91 # is now pretty well tested by the rest of the quick tests anyway
92 LDBDIR
=$samba4srcdir/lib
/ldb
94 plantest
"ldb" none TEST_DATA_PREFIX
=\
$PREFIX $LDBDIR/tests
/test-tdb.sh
95 plantest
"js.ldap" dc $SCRIPTDIR/ldap.js
$CONFIGURATION -d 10 \
$SERVER -U\
$USERNAME%\
$PASSWORD
99 # add tests to this list as they start passing, so we test
100 # that they stay passing
101 ncacn_np_tests
="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-HANDLES RPC-SAMSYNC RPC-SAMBA3SESSIONKEY RPC-SAMBA3-GETUSERNAME RPC-SAMBA3-LSA RPC-BINDSAMBA3 RPC-NETLOGSAMBA3 RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
102 ncalrpc_tests
="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-DRSUAPI RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
103 ncacn_ip_tcp_tests
="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-HANDLES RPC-DSSYNC RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
104 slow_ncacn_np_tests
="RPC-SAMLOGON RPC-SAMR RPC-SAMR-USERS RPC-SAMR-PASSWORDS"
105 slow_ncalrpc_tests
="RPC-SAMR RPC-SAMR-PASSWORDS"
106 slow_ncacn_ip_tcp_tests
="RPC-SAMR RPC-SAMR-PASSWORDS RPC-CRACKNAMES"
108 all_tests
="$ncalrpc_tests $ncacn_np_tests $ncacn_ip_tcp_tests $slow_ncalrpc_tests $slow_ncacn_np_tests $slow_ncacn_ip_tcp_tests RPC-SECRETS RPC-SAMBA3-SHARESEC"
110 # Make sure all tests get run
111 for t
in `$smb4torture --list | grep "^RPC-"`
113 echo $all_tests |
grep $t > /dev
/null
116 auto_rpc_tests
="$auto_rpc_tests $t"
120 for bindoptions
in seal
,padcheck
$VALIDATE bigendian
; do
121 for transport
in ncalrpc ncacn_np ncacn_ip_tcp
; do
123 ncalrpc
) tests
=$ncalrpc_tests ;;
124 ncacn_np
) tests
=$ncacn_np_tests ;;
125 ncacn_ip_tcp
) tests
=$ncacn_ip_tcp_tests ;;
128 plantest
"`normalize_testname $t` on $transport with $bindoptions" dc $VALGRIND $smb4torture $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN $t "$*"
130 plantest
"rpc.samba3.sharesec on $transport with $bindoptions" dc $VALGRIND $smb4torture $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN --option=torture
:share
=tmp RPC-SAMBA3-SHARESEC
"$*"
134 for bindoptions
in "" $VALIDATE bigendian
; do
135 for t
in $auto_rpc_tests; do
136 plantest
"`normalize_testname $t` with $bindoptions" dc $VALGRIND $smb4torture "\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN $t "$*"
140 for bindoptions
in connect
$VALIDATE ; do
141 for transport
in ncalrpc ncacn_np ncacn_ip_tcp
; do
143 ncalrpc
) tests
=$slow_ncalrpc_tests ;;
144 ncacn_np
) tests
=$slow_ncacn_np_tests ;;
145 ncacn_ip_tcp
) tests
=$slow_ncacn_ip_tcp_tests ;;
148 plantest
"`normalize_testname $t` on $transport with $bindoptions" dc $VALGRIND $smb4torture $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN $t "$*"
154 # Tests for the NET API
156 net
=`$smb4torture --list | grep ^NET-`
159 plansmbtorturetest
"$t" dc "\$SERVER[$VALIDATE]" -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "$*"
162 # Tests for session keys
167 "-k no --option=usespnego=yes" \
168 "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no" \
169 "-k no --option=usespnego=yes --option=ntlmssp_client:56bit=yes" \
170 "-k no --option=usespnego=yes --option=ntlmssp_client:56bit=no" \
171 "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=yes" \
172 "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=no" \
173 "-k no --option=usespnego=yes --option=clientntlmv2auth=yes" \
174 "-k no --option=usespnego=yes --option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no" \
175 "-k no --option=usespnego=yes --option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=yes" \
176 "-k no --option=usespnego=no --option=clientntlmv2auth=yes" \
177 "-k no --option=gensec:spnego=no --option=clientntlmv2auth=yes" \
178 "-k no --option=usespnego=no"; do
179 name
="rpc.secrets on $transport with $bindoptions with $ntlmoptions"
180 plantest
"$name" dc $smb4torture $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN --option=gensec
:target_hostname
=\
$NETBIOSNAME RPC-SECRETS
"$*"
182 plantest
"rpc.secrets on $transport with $bindoptions with Kerberos" dc $smb4torture $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS
"$*"
183 plantest
"rpc.secrets on $transport with $bindoptions with Kerberos - use target principal" dc $smb4torture $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN "--option=clientusespnegoprincipal=yes" "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS
"$*"
184 plantest
"rpc.secrets on $transport with Kerberos - use Samba3 style login" dc $smb4torture $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" "RPC-SECRETS-none*" "$*"
185 plantest
"rpc.secrets on $transport with Kerberos - use Samba3 style login, use target principal" dc $smb4torture $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=clientusespnegoprincipal=yes" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" "RPC-SECRETS-none*" "$*"
188 transports
="ncacn_np ncacn_ip_tcp ncalrpc"
190 for transport
in $transports; do
191 for bindoptions
in connect spnego spnego
,sign spnego
,seal
$VALIDATE padcheck bigendian bigendian
,seal
; do
193 "--option=socket:testnonblock=True --option=torture:quick=yes"; do
194 plantest
"rpc.echo on $transport with $bindoptions and $ntlmoptions" dc $smb4torture $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" RPC-ECHO
"$*"
199 for transport
in $transports; do
200 for bindoptions
in sign seal
; do
202 "--option=ntlmssp_client:ntlm2=yes --option=torture:quick=yes" \
203 "--option=ntlmssp_client:ntlm2=no --option=torture:quick=yes" \
204 "--option=ntlmssp_client:ntlm2=yes --option=ntlmssp_client:128bit=no --option=torture:quick=yes" \
205 "--option=ntlmssp_client:ntlm2=no --option=ntlmssp_client:128bit=no --option=torture:quick=yes" \
206 "--option=ntlmssp_client:ntlm2=yes --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes" \
207 "--option=ntlmssp_client:ntlm2=no --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes" \
208 "--option=clientntlmv2auth=yes --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes" \
209 "--option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:keyexchange=yes --option=torture:quick=yes" \
210 "--option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes" \
212 plantest
"rpc.echo on $transport with $bindoptions and $ntlmoptions" dc $smb4torture $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN RPC-ECHO
"$*"
217 plantest
"rpc.echo on ncacn_np over smb2" dc $smb4torture ncacn_np
:"\$SERVER[smb2]" -U"\$USERNAME"%"\$PASSWORD" -W \
$DOMAIN RPC-ECHO
"$*"
219 # Tests against the NTVFS POSIX backend
220 NTVFSARGS
="--option=torture:sharedelay=100000 --option=torture:oplocktimeout=3"
221 smb2
=`$smb4torture --list | grep "^SMB2-" | xargs`
222 raw
=`$smb4torture --list | grep "^RAW-" | xargs`
223 base
=`$smb4torture --list | grep "^BASE-" | xargs`
225 for t
in $base $raw $smb2; do
226 plansmbtorturetest
"$t" dc $ADDARGS //\
$SERVER/tmp
-U"\$USERNAME"%"\$PASSWORD" $NTVFSARGS
229 rap
=`$smb4torture --list | grep "^RAP-" | xargs`
231 plansmbtorturetest
"$t" dc $ADDARGS //\
$SERVER/IPC
\\\$
-U"\$USERNAME"%"\$PASSWORD"
234 # Tests against the NTVFS CIFS backend
235 for t
in $base $raw; do
236 plantest
"ntvfs.cifs.`normalize_testname $t`" dc $VALGRIND $smb4torture //\
$NETBIOSNAME/cifs
-U"\$USERNAME"%"\$PASSWORD" $NTVFSARGS $t
241 for t
in `$smb4torture --list | grep "^LOCAL-" | xargs`; do
242 plansmbtorturetest
"$t" none ncalrpc
: "$*"
245 if test -f $samba4bindir/tdbtorture
247 plantest
"tdb.stress" none
$VALGRIND $samba4bindir/tdbtorture
252 if test x
"${PIDL_TESTS_SKIP}" = x
"yes"; then
253 echo "Skipping pidl tests - PIDL_TESTS_SKIP=yes"
254 elif $PERL -e 'eval require Test::More;' > /dev
/null
2>&1; then
255 for f
in $samba4srcdir/pidl
/tests
/*.pl
; do
256 plantest
"pidl.`basename $f .pl`" none
$PERL $f "|" $samba4srcdir/script
/harness2subunit.pl
259 echo "Skipping pidl tests - Test::More not installed"
263 # tests that interact directly with the command-line tools rather than using
266 bbdir
=$incdir/..
/..
/testprogs
/blackbox
268 plantest
"blackbox.smbclient" dc $bbdir/test_smbclient.sh
"\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
269 plantest
"blackbox.kinit" dc $bbdir/test_kinit.sh
"\$SERVER" "\$USERNAME" "\$PASSWORD" "\$REALM" "\$DOMAIN" "$PREFIX" $CONFIGURATION
270 plantest
"blackbox.cifsdd" dc $bbdir/test_cifsdd.sh
"\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN"
271 plantest
"blackbox.nmblookup" dc $samba4srcdir/utils
/tests
/test_nmblookup.sh
"\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP"
272 plantest
"blackbox.nmblookup" member
$samba4srcdir/utils
/tests
/test_nmblookup.sh
"\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP"
273 plantest
"blackbox.locktest" dc $bbdir/test_locktest.sh
"\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
274 plantest
"blackbox.masktest" dc $bbdir/test_masktest.sh
"\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
275 plantest
"blackbox.gentest" dc $bbdir/test_gentest.sh
"\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
277 # Tests using the "Simple" NTVFS backend
279 for t
in "BASE-RW1"; do
280 plantest
"ntvfs.simple.`normalize_testname $t`" dc $VALGRIND $smb4torture $ADDARGS //\
$SERVER/simple
-U"\$USERNAME"%"\$PASSWORD" $t
283 DATADIR
=$samba4srcdir/..
/testdata
285 plantest
"js.samba3sam" none
$SCRIPTDIR/samba3sam.js
$CONFIGURATION `pwd` $DATADIR/samba
3/
287 # Domain Member Tests
289 plantest
"rpc.echo against member server with local creds" member
$VALGRIND $smb4torture ncacn_np
:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" RPC-ECHO
"$*"
290 plantest
"rpc.echo against member server with domain creds" member
$VALGRIND $smb4torture ncacn_np
:"\$NETBIOSNAME" -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD" RPC-ECHO
"$*"
291 plantest
"rpc.samr against member server with local creds" member
$VALGRIND $smb4torture ncacn_np
:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR" "$*"
292 plantest
"rpc.samr.users against member server with local creds" member
$VALGRIND $smb4torture ncacn_np
:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR-USERS" "$*"
293 plantest
"rpc.samr.passwords against member server with local creds" member
$VALGRIND $smb4torture ncacn_np
:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR-PASSWORDS" "$*"
294 plantest
"wbinfo -a against member server with domain creds" member
$VALGRIND $samba4bindir/wbinfo
-a "\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
296 NBT_TESTS
=`$smb4torture --list | grep "^NBT-" | xargs`
298 for t
in $NBT_TESTS; do
299 plansmbtorturetest
"$t" dc //\
$SERVER/_none_
-U\
$USERNAME%\
$PASSWORD
302 WB_OPTS
="--option=\"torture:strict mode=yes\""
303 WB_OPTS
="${WB_OPTS} --option=\"torture:timelimit=1\""
304 WB_OPTS
="${WB_OPTS} --option=\"torture:winbindd separator=\\\\\""
305 WB_OPTS
="${WB_OPTS} --option=\"torture:winbindd private pipe dir=\$WINBINDD_PRIV_PIPE_DIR\""
306 WB_OPTS
="${WB_OPTS} --option=\"torture:winbindd netbios name=\$SERVER\""
307 WB_OPTS
="${WB_OPTS} --option=\"torture:winbindd netbios domain=\$DOMAIN\""
309 WINBIND_STRUCT_TESTS
=`$smb4torture --list | grep "^WINBIND-STRUCT" | xargs`
310 WINBIND_NDR_TESTS
=`$smb4torture --list | grep "^WINBIND-NDR" | xargs`
311 for env
in dc member
; do
312 for t
in $WINBIND_STRUCT_TESTS; do
313 plansmbtorturetest
$t $env $WB_OPTS //_none_
/_none_
316 for t
in $WINBIND_NDR_TESTS; do
317 plansmbtorturetest
$t $env $WB_OPTS //_none_
/_none_
321 if test -f $samba4bindir/nsstest
323 plantest
"nss.test using winbind" member
$VALGRIND $samba4bindir/nsstest
$samba4bindir/shared
/libnss_winbind.so
327 SUBUNITRUN
="$PYTHON ./scripting/bin/subunitrun"
328 plantest
"ldb.python" none PYTHONPATH
="$PYTHONPATH:lib/ldb/tests/python/" $SUBUNITRUN api
329 plantest
"credentials.python" none PYTHONPATH
="$PYTHONPATH:auth/credentials/tests" $SUBUNITRUN bindings
330 plantest
"registry.python" none PYTHONPATH
="$PYTHONPATH:lib/registry/tests/" $SUBUNITRUN bindings
331 plantest
"tdb.python" none PYTHONPATH
="$PYTHONPATH:lib/tdb/python/tests" $SUBUNITRUN simple
332 plantest
"auth.python" none PYTHONPATH
="$PYTHONPATH:auth/tests/" $SUBUNITRUN bindings
333 plantest
"security.python" none PYTHONPATH
="$PYTHONPATH:libcli/security/tests" $SUBUNITRUN bindings
334 plantest
"param.python" none PYTHONPATH
="$PYTHONPATH:param/tests" $SUBUNITRUN bindings
335 plantest
"upgrade.python" none
$SUBUNITRUN samba.tests.upgrade
336 plantest
"samba.python" none
$SUBUNITRUN samba.tests
337 plantest
"provision.python" none
$SUBUNITRUN samba.tests.provision
338 plantest
"samba3.python" none
$SUBUNITRUN samba.tests.samba3
339 plantest
"samr.python" dc $SUBUNITRUN samba.tests.dcerpc.sam
340 plantest
"samdb.python" dc $SUBUNITRUN samba.tests.samdb
341 plantest
"events.python" none PYTHONPATH
="$PYTHONPATH:lib/events" $SUBUNITRUN tests
342 plantest
"samba3sam.python" none PYTHONPATH
="$PYTHONPATH:dsdb/samdb/ldb_modules/tests" $SUBUNITRUN samba3sam
343 plantest
"rpcecho.python" dc $SUBUNITRUN samba.tests.dcerpc.rpcecho
344 plantest
"winreg.python" dc $SUBUNITRUN samba.tests.dcerpc.registry
345 plantest
"ldap.python" dc $PYTHON $samba4srcdir/lib
/ldb
/tests
/python
/ldap.py
$CONFIGURATION \
$SERVER -U\
$USERNAME%\
$PASSWORD -W \
$DOMAIN
346 plantest
"blackbox.samba3dump" none
$PYTHON scripting
/bin
/samba3dump
$samba4srcdir/..
/testdata
/samba3
347 rm -rf $PREFIX/upgrade
348 plantest
"blackbox.upgrade" none
$PYTHON setup
/upgrade.py
$CONFIGURATION --targetdir=$PREFIX/upgrade ..
/testdata
/samba3 ..
/testdata
/samba
3/smb.conf
349 rm -rf $PREFIX/provision
350 mkdir
$PREFIX/provision
351 plantest
"blackbox.provision.py" none PYTHON
="$PYTHON" $samba4srcdir/setup
/tests
/blackbox_provision.sh
"$PREFIX/provision" "$CONFIGURATION"