summaryrefslogtreecommitdiff
path: root/testsuite/build_farm
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/build_farm')
-rw-r--r--testsuite/build_farm/basicsmb-domainsec-nt4.test28
-rw-r--r--testsuite/build_farm/basicsmb-domainsec.test27
-rw-r--r--testsuite/build_farm/basicsmb-hostsdeny.test18
-rw-r--r--testsuite/build_farm/basicsmb-hostsequiv.test26
-rw-r--r--testsuite/build_farm/basicsmb-invalidusers.test8
-rw-r--r--testsuite/build_farm/basicsmb-local-pass-change.test10
-rw-r--r--testsuite/build_farm/basicsmb-remote-pass-change.test10
-rw-r--r--testsuite/build_farm/basicsmb-serversec.test9
-rw-r--r--testsuite/build_farm/basicsmb-shareguest.test20
-rw-r--r--testsuite/build_farm/basicsmb-sharelist.test19
-rw-r--r--testsuite/build_farm/basicsmb-sharesec.test9
-rw-r--r--testsuite/build_farm/basicsmb-usersec.test9
-rw-r--r--testsuite/build_farm/basicsmb.fns184
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.domain2
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.hostsdeny1
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.hostsequiv.template3
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.invalidusers.template1
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.server3
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.share1
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.template47
-rw-r--r--testsuite/build_farm/basicsmb.smb.conf.user1
-rw-r--r--testsuite/build_farm/runlist14
-rw-r--r--testsuite/build_farm/torture-ATTR.test2
-rw-r--r--testsuite/build_farm/torture-BROWSE.test2
-rw-r--r--testsuite/build_farm/torture-DELETE.test2
-rw-r--r--testsuite/build_farm/torture-DENY1.test2
-rw-r--r--testsuite/build_farm/torture-DENY2.test2
-rw-r--r--testsuite/build_farm/torture-DIR.test2
-rw-r--r--testsuite/build_farm/torture-FDPASS.test2
-rw-r--r--testsuite/build_farm/torture-LOCK1.test2
-rw-r--r--testsuite/build_farm/torture-LOCK2.test2
-rw-r--r--testsuite/build_farm/torture-LOCK3.test2
-rw-r--r--testsuite/build_farm/torture-LOCK4.test2
-rw-r--r--testsuite/build_farm/torture-LOCK5.test2
-rw-r--r--testsuite/build_farm/torture-OPEN.test2
-rw-r--r--testsuite/build_farm/torture-OPLOCK1.test2
-rw-r--r--testsuite/build_farm/torture-OPLOCK3.test2
-rw-r--r--testsuite/build_farm/torture-RANDOMIPC.test2
-rw-r--r--testsuite/build_farm/torture-RW1.test2
-rw-r--r--testsuite/build_farm/torture-RW2.test2
-rw-r--r--testsuite/build_farm/torture-TCON.test2
-rw-r--r--testsuite/build_farm/torture-TORTURE.test2
-rw-r--r--testsuite/build_farm/torture-TRANS2.test2
-rw-r--r--testsuite/build_farm/torture-UNLINK.test2
-rw-r--r--testsuite/build_farm/torture_setup.fns19
45 files changed, 513 insertions, 0 deletions
diff --git a/testsuite/build_farm/basicsmb-domainsec-nt4.test b/testsuite/build_farm/basicsmb-domainsec-nt4.test
new file mode 100644
index 0000000000..2f5289ab82
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-domainsec-nt4.test
@@ -0,0 +1,28 @@
+. basicsmb.fns
+
+test_joindomain_nt4() {
+
+ echo $prefix/bin/smbpasswd -L -a -m buildfarm$
+ $prefix/bin/smbpasswd -L -a -m buildfarm$
+
+ echo $prefix/bin/net rpc join oldstyle -S localhost
+ $prefix/bin/net rpc join oldstyle -S localhost
+ status=$?
+ if [ $status = 0 ]; then
+ echo "'net rpc join oldstyle' correctly joined the domain"
+ else
+ echo "'net rpc join oldstyle' failed to join the domain! (status $status)"
+ return 1
+ fi
+ return 0
+}
+
+password=samba
+security=DOMAIN
+(test_smb_conf_setup && test_smbpasswd $password ) || exit 1
+
+test_joindomain_nt4 $password || exit 1
+
+test_listfilesauth $security || exit 1
+test_listfilesnpw $security || exit 1
+
diff --git a/testsuite/build_farm/basicsmb-domainsec.test b/testsuite/build_farm/basicsmb-domainsec.test
new file mode 100644
index 0000000000..eb0a5c81aa
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-domainsec.test
@@ -0,0 +1,27 @@
+
+. basicsmb.fns
+
+test_joindomain() {
+ test_join_domain_password="$1"
+
+ echo "$prefix/bin/net rpc join -S localhost -U $whoami%$test_join_domain_password"
+ $prefix/bin/net rpc join -S localhost -U $whoami%$test_join_domain_password
+ status=$?
+ if [ $status = 0 ]; then
+ echo "'net rpc join' correctly joined the domain"
+ else
+ echo "'net rpc join' failed to join the domain! (status $status)"
+ return 1
+ fi
+ return 0
+}
+
+password=samba
+(test_smb_conf_setup && test_smbpasswd $password ) || exit 1
+
+test_joindomain $password || exit 1
+
+security=DOMAIN
+test_listfilesauth $security || exit 1
+test_listfilesnpw $security || exit 1
+
diff --git a/testsuite/build_farm/basicsmb-hostsdeny.test b/testsuite/build_farm/basicsmb-hostsdeny.test
new file mode 100644
index 0000000000..c7f6bec62f
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-hostsdeny.test
@@ -0,0 +1,18 @@
+. basicsmb.fns
+
+password="samba"
+security="hostsdeny"
+(test_smb_conf_setup && test_smbpasswd $password) || exit 1
+
+(test_listfilesauth_should_deny $security) || exit 1
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testsuite/build_farm/basicsmb-hostsequiv.test b/testsuite/build_farm/basicsmb-hostsequiv.test
new file mode 100644
index 0000000000..d424743d11
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-hostsequiv.test
@@ -0,0 +1,26 @@
+if [ $whoami = "root" ]; then
+ exit 0;
+fi
+
+. basicsmb.fns
+
+test_listfilesrootnpw() {
+ remote_name="$1"
+ echo $prefix/bin/smbclient //$remote_name/samba -n buildclient -Uroot% -c 'ls'
+ $prefix/bin/smbclient //$remote_name/samba -n buildclient -Uroot% -c 'ls'
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbd listed files AS ROOT with NO PASSWORD (hosts equiv test)!"
+ return 1
+ else
+ echo "listing files with smbd failed with status $status (correct)"
+ fi
+ return 0
+}
+
+password="not-a-valid-password"
+security="hostsequiv"
+(test_smb_conf_setup ) || exit 1
+
+(test_listfilesauth $security) || exit 1
+(test_listfilesrootnpw $security) || exit 1
diff --git a/testsuite/build_farm/basicsmb-invalidusers.test b/testsuite/build_farm/basicsmb-invalidusers.test
new file mode 100644
index 0000000000..54c9c758c6
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-invalidusers.test
@@ -0,0 +1,8 @@
+. basicsmb.fns
+
+password="samba"
+security="invalidusers"
+(test_smb_conf_setup && test_smbpasswd $password) || exit 1
+
+(test_listfilesauth_should_deny $security) || exit 1
+
diff --git a/testsuite/build_farm/basicsmb-local-pass-change.test b/testsuite/build_farm/basicsmb-local-pass-change.test
new file mode 100644
index 0000000000..432376c666
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-local-pass-change.test
@@ -0,0 +1,10 @@
+. basicsmb.fns
+
+passwordold=samba
+password=samba2
+security=USER
+(test_smb_conf_setup && test_smbpasswd $passwordold && test_smbpasswd_local $passwordold $password) || exit 1
+
+test_listfilesauth $security || exit 1
+test_listfilesnpw $security || exit 1
+
diff --git a/testsuite/build_farm/basicsmb-remote-pass-change.test b/testsuite/build_farm/basicsmb-remote-pass-change.test
new file mode 100644
index 0000000000..adfe0dc3eb
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-remote-pass-change.test
@@ -0,0 +1,10 @@
+. basicsmb.fns
+
+passwordold=samba
+password=samba2
+security=USER
+(test_smb_conf_setup && test_smbpasswd $passwordold && test_smbpasswd_remote $passwordold $password) || exit 1
+
+test_listfilesauth $security || exit 1
+test_listfilesnpw $security || exit 1
+
diff --git a/testsuite/build_farm/basicsmb-serversec.test b/testsuite/build_farm/basicsmb-serversec.test
new file mode 100644
index 0000000000..b45899ab77
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-serversec.test
@@ -0,0 +1,9 @@
+. basicsmb.fns
+
+password=samba
+security=SERVER
+(test_smb_conf_setup && test_smbpasswd $password ) || exit 1
+
+test_listfilesauth $security || exit 1
+test_listfilesnpw $security || exit 1
+
diff --git a/testsuite/build_farm/basicsmb-shareguest.test b/testsuite/build_farm/basicsmb-shareguest.test
new file mode 100644
index 0000000000..4ba445a17e
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-shareguest.test
@@ -0,0 +1,20 @@
+. basicsmb.fns
+
+test_listfilesguestshare() {
+ remote_name=$1
+ echo $prefix/bin/smbclient //$remote_name/guest_share -n buildclient -U$whoami% -c 'ls'
+ $prefix/bin/smbclient //$remote_name/guest_share -n buildclient -U$whoami% -c 'ls'
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbd listed files correctly (guest share)"
+ else
+ echo "listing files on a guest share failed with status $status"
+ return 1
+ fi
+ return 0
+}
+
+security=SHARE
+( test_smb_conf_setup ) || exit 1
+
+( test_listfilesguestshare $security ) || exit 1 \ No newline at end of file
diff --git a/testsuite/build_farm/basicsmb-sharelist.test b/testsuite/build_farm/basicsmb-sharelist.test
new file mode 100644
index 0000000000..87c3e47552
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-sharelist.test
@@ -0,0 +1,19 @@
+. basicsmb.fns
+test_sharelist() {
+ echo $prefix/bin/smbclient -U$whoami% -L localhost
+ $prefix/bin/smbclient -U$whoami% -L localhost
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbd listed shares OK"
+ else
+ echo "listing shares with smbd failed with status $status"
+ return 1
+ fi
+ return 0
+}
+
+(test_smb_conf_setup) || exit 1
+
+test_sharelist || exit 1
+
+
diff --git a/testsuite/build_farm/basicsmb-sharesec.test b/testsuite/build_farm/basicsmb-sharesec.test
new file mode 100644
index 0000000000..edef6a9123
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-sharesec.test
@@ -0,0 +1,9 @@
+. basicsmb.fns
+
+password="samba"
+security="SHARE"
+(test_smb_conf_setup && ( test_smbpasswd $password ) ) || exit 1
+
+(test_listfilesauth $security) || exit 1
+(test_listfilesnpw $security) || exit 1
+
diff --git a/testsuite/build_farm/basicsmb-usersec.test b/testsuite/build_farm/basicsmb-usersec.test
new file mode 100644
index 0000000000..06f2a1c404
--- /dev/null
+++ b/testsuite/build_farm/basicsmb-usersec.test
@@ -0,0 +1,9 @@
+. basicsmb.fns
+
+password=samba
+security=USER
+(test_smb_conf_setup && test_smbpasswd $password ) || exit 1
+
+test_listfilesauth $security || exit 1
+test_listfilesnpw $security || exit 1
+
diff --git a/testsuite/build_farm/basicsmb.fns b/testsuite/build_farm/basicsmb.fns
new file mode 100644
index 0000000000..135a17fe93
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.fns
@@ -0,0 +1,184 @@
+#! /bin/sh
+
+# Common functions for Samba build scripts.
+
+# Copyright (C) 2001 by Martin Pool <mbp@samba.org> and others
+
+# The following variables are passed in by the calling script. They
+# originate in either the buildfarm scripts or the configured
+# Makefile.
+
+# PREFIX = Installed prefix of samba test installation. Used to
+# locate binaries, configuration files, etc.
+
+# XXX: It's pretty bad to clobber the installed configuration file and
+# other data in $prefix, because somebody might unwittingly run this
+# with prefix=/usr.
+
+# Really what we want is a consistent way to pass the location of the
+# configuration and all other files into *all* Samba programs
+# (smbclient, smd, ...) and be able to set them to a temporary
+# directory when testing. Some of them take a -c parameter, but tpot
+# says it's not done consistently.
+
+template_smb_conf_setup() {
+ cat basicsmb.smb.conf$1.template | \
+ sed "s|PREFIX|$prefix|g" | \
+ sed "s|BUILD_FARM|$test_root|g" | \
+ sed "s|WHOAMI|$whoami|g" | \
+ sed "s|LOGLEVEL|$loglevel|g" \
+ > $prefix/lib/smb.conf$1
+ echo "template_smb_conf_setup: Created $prefix/lib/smb.conf$1"
+}
+
+test_smb_conf_setup() {
+ echo "test_smb_conf_setup: Configuring: "
+ echo " PREFIX=$prefix"
+ echo " BUILD_FARM=$test_root"
+ echo " WHOAMI=$whoami"
+ echo " LOGLEVEL=$loglevel"
+ echo " TREE=$tree"
+
+ case "$prefix" in
+ /usr*|/|//)
+ echo "** I don't want to clobber your installation in "
+ echo "** $prefix"
+ echo "** by running tests there. Please reconfigure this source tree to"
+ echo "** use a different prefix."
+ exit 1
+ esac
+
+ template_smb_conf_setup
+ template_smb_conf_setup .hostsequiv
+ template_smb_conf_setup .invalidusers
+
+ echo "127.0.0.1 localhost">$prefix/lib/lmhosts
+ echo "127.0.0.2 BUILDFARM">>$prefix/lib/lmhosts
+ echo "127.0.0.3 SHARE">>$prefix/lib/lmhosts
+ echo "127.0.0.4 USER">>$prefix/lib/lmhosts
+ echo "127.0.0.5 SERVER">>$prefix/lib/lmhosts
+ echo "127.0.0.6 DOMAIN">>$prefix/lib/lmhosts
+ echo "127.0.0.7 HOSTSEQUIV">>$prefix/lib/lmhosts
+
+ echo "127.0.0.1" > $prefix/lib/hosts.equiv
+
+ cp basicsmb.smb.conf.share $prefix/lib/smb.conf.share
+ cp basicsmb.smb.conf.user $prefix/lib/smb.conf.user
+ cp basicsmb.smb.conf.server $prefix/lib/smb.conf.server
+ cp basicsmb.smb.conf.domain $prefix/lib/smb.conf.domain
+
+ touch $prefix/lib/smb.conf.
+ touch $prefix/lib/smb.conf.localhost
+}
+
+test_smbpasswd() {
+ test_smbpasswd_password="$1"
+ rm -f $prefix/private/smbpasswd
+ echo "( echo $test_smbpasswd_password ; echo $test_smbpasswd_password; ) | $prefix/bin/smbpasswd -L -s -a $whoami"
+ ( echo $test_smbpasswd_password; echo $test_smbpasswd_password; ) | $prefix/bin/smbpasswd -L -s -a $whoami
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbpasswd correctly set initial password ($test_smbpasswd_password)"
+ else
+ echo "smbpasswd failed to set initial password ($test_smbpasswd_password)! (status $status)"
+ return 1
+ fi
+ return 0
+}
+
+test_smbpasswd_remote() {
+ test_smbpasswd_rem_password="$1"
+ test_smbpasswd_rem_newpassword="$2"
+ echo "( echo $test_smbpasswd_rem_password; echo $test_smbpasswd_rem_newpassword; echo $test_smbpasswd_rem_newpassword; ) | $prefix/bin/smbpasswd -r localhost -s -U $whoami"
+ ( echo $test_smbpasswd_rem_password; echo $test_smbpasswd_rem_newpassword; echo $test_smbpasswd_rem_newpassword; ) | $prefix/bin/smbpasswd -r localhost -s -U $whoami
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbpasswd correctly remotely changed password ($test_smbpasswd_rem_password -> $test_smbpasswd_rem_newpassword)"
+ else
+ echo "smbpasswd failed to remotely changed password ($test_smbpasswd_rem_password -> $test_smbpasswd_rem_newpassword)! (status $status)"
+ return 1
+ fi
+ return 0
+}
+
+test_smbpasswd_local() {
+ test_smbpasswd_newpassword="$2"
+ echo "( echo $test_smbpasswd_newpassword ; echo $test_smbpasswd_newpassword; ) | $prefix/bin/smbpasswd -L -s $whoami"
+ ( echo $test_smbpasswd_newpassword ; echo $test_smbpasswd_newpassword; ) | $prefix/bin/smbpasswd -L -s $whoami
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbpasswd correctly locally changed password ($test_smbpasswd_password -> $test_smbpasswd_newpassword)"
+ else
+ echo "smbpasswd failed to locallly changed password ($test_smbpasswd_password -> $test_smbpasswd_newpassword)! (status $status)"
+ return 1
+ fi
+ return 0
+}
+
+test_listfilesauth() {
+ remote_name="$1"
+ echo $prefix/bin/smbclient//$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
+ $prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
+ status=$?
+ if [ $status = 0 ]; then
+ echo "listed files OK"
+ else
+ echo "listing files with smbd failed with status $status"
+ return 1
+ fi
+ return 0
+}
+
+test_listfilesnpw() {
+ remote_name="$1"
+ echo $prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami% -c 'ls'
+ $prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami% -c 'ls'
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbd listed files with NO PASSWORD on an authenticated share!"
+ return 1
+ else
+ echo "listing files with smbd failed with status $status (correct)"
+ fi
+ return 0
+}
+
+test_listfilesauth_should_deny() {
+ remote_name="$1"
+ echo $prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
+ $prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbd LISTED FILES despite smb.conf entires to the contary!"
+ return 1
+ else
+ echo "listing files with smbd failed with status $status (correct)"
+ fi
+ return 0
+}
+
+echo "LIBSMB_PROG=$LIBSMB_PROG" >&2
+
+
+
+# Give sensible defaults to some variables.
+
+# "What's my age again?"
+
+if [ ! $USER = "" ]; then
+ whoami=$USER
+else
+ if [ ! $LOGNAME = "" ]; then
+ whoami=$LOGNAME
+ else
+ whoami=build
+ fi
+fi
+
+
+
+if test -z "$loglevel"
+then
+ loglevel=1
+fi
+
diff --git a/testsuite/build_farm/basicsmb.smb.conf.domain b/testsuite/build_farm/basicsmb.smb.conf.domain
new file mode 100644
index 0000000000..8b9728838e
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.domain
@@ -0,0 +1,2 @@
+security=domain
+password server=user
diff --git a/testsuite/build_farm/basicsmb.smb.conf.hostsdeny b/testsuite/build_farm/basicsmb.smb.conf.hostsdeny
new file mode 100644
index 0000000000..3fce0bdbf4
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.hostsdeny
@@ -0,0 +1 @@
+ hosts deny = 127. \ No newline at end of file
diff --git a/testsuite/build_farm/basicsmb.smb.conf.hostsequiv.template b/testsuite/build_farm/basicsmb.smb.conf.hostsequiv.template
new file mode 100644
index 0000000000..750af74f59
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.hostsequiv.template
@@ -0,0 +1,3 @@
+ hostname lookups = no
+ hosts equiv=PREFIX/lib/hosts.equiv
+ auth methods = hostsequiv
diff --git a/testsuite/build_farm/basicsmb.smb.conf.invalidusers.template b/testsuite/build_farm/basicsmb.smb.conf.invalidusers.template
new file mode 100644
index 0000000000..a96a316db9
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.invalidusers.template
@@ -0,0 +1 @@
+ invalid users = WHOAMI
diff --git a/testsuite/build_farm/basicsmb.smb.conf.server b/testsuite/build_farm/basicsmb.smb.conf.server
new file mode 100644
index 0000000000..016f84cd35
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.server
@@ -0,0 +1,3 @@
+security=server
+password server=user
+smb passwd file=NON_EXISTANT_FILE
diff --git a/testsuite/build_farm/basicsmb.smb.conf.share b/testsuite/build_farm/basicsmb.smb.conf.share
new file mode 100644
index 0000000000..8e69cc199a
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.share
@@ -0,0 +1 @@
+ security = share
diff --git a/testsuite/build_farm/basicsmb.smb.conf.template b/testsuite/build_farm/basicsmb.smb.conf.template
new file mode 100644
index 0000000000..8b75f299a2
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.template
@@ -0,0 +1,47 @@
+[global]
+ netbios name = BUILDFARM
+ workgroup = TESTWG
+ log level = LOGLEVEL
+ debug timestamp = no
+ encrypt passwords = yes
+ server string = Samba %v Build Farm Tests
+ name resolve order = lmhosts
+ guest account = WHOAMI
+ domain logons = yes
+
+ strict locking = yes
+
+ include = PREFIX/lib/smb.conf.%L
+
+ add machine script = useradd %u -d /dev/null -s /bin/false
+
+ panic action = echo bt | gdb PREFIX/sbin/smbd %d
+
+ passdb backend = smbpasswd_nua
+
+ non unix account range = 10000-20000
+
+[test]
+ path = PREFIX/testdir
+ read only = no
+
+[samba]
+ path = BUILD_FARM/samba
+ read only = yes
+ comment = Samba HEAD Sources
+
+[samba_2_2]
+ path = BUILD_FARM/samba_2_2
+ read only = yes
+ comment = Samba 2.2. Sources
+
+[rsync]
+ path = BUILD_FARM/rsync
+ read only = yes
+ comment = Rsync Sources
+
+[guest_share]
+ path = PREFIX
+ guest ok = yes
+ read only = yes
+ comment = Unauthenticated share for use in share level test
diff --git a/testsuite/build_farm/basicsmb.smb.conf.user b/testsuite/build_farm/basicsmb.smb.conf.user
new file mode 100644
index 0000000000..9d294b9c39
--- /dev/null
+++ b/testsuite/build_farm/basicsmb.smb.conf.user
@@ -0,0 +1 @@
+ security = user
diff --git a/testsuite/build_farm/runlist b/testsuite/build_farm/runlist
new file mode 100644
index 0000000000..a7d4808bc3
--- /dev/null
+++ b/testsuite/build_farm/runlist
@@ -0,0 +1,14 @@
+TEST_ALL="basicsmb-sharelist basicsmb-local-pass-change \
+basicsmb-sharesec basicsmb-usersec \
+basicsmb-serversec basicsmb-domainsec basicsmb-domainsec-nt4 \
+basicsmb-shareguest basicsmb-hostsequiv basicsmb-invalidusers \
+basicsmb-hostsdeny basicsmb-remote-pass-change \
+torture-FDPASS torture-LOCK1 torture-LOCK2 \
+torture-LOCK3 torture-LOCK4 torture-LOCK5 \
+torture-UNLINK torture-BROWSE torture-ATTR \
+torture-TRANS2 torture-TORTURE torture-OPLOCK1 \
+torture-OPLOCK3 torture-DIR torture-DENY1 \
+torture-DENY2 torture-TCON torture-RW1 \
+torture-RW2 torture-OPEN torture-DELETE"
+
+#basicsmb-serversec
diff --git a/testsuite/build_farm/torture-ATTR.test b/testsuite/build_farm/torture-ATTR.test
new file mode 100644
index 0000000000..db6d5e8782
--- /dev/null
+++ b/testsuite/build_farm/torture-ATTR.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "ATTR"
diff --git a/testsuite/build_farm/torture-BROWSE.test b/testsuite/build_farm/torture-BROWSE.test
new file mode 100644
index 0000000000..da758977da
--- /dev/null
+++ b/testsuite/build_farm/torture-BROWSE.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "BROWSE"
diff --git a/testsuite/build_farm/torture-DELETE.test b/testsuite/build_farm/torture-DELETE.test
new file mode 100644
index 0000000000..395f449d1e
--- /dev/null
+++ b/testsuite/build_farm/torture-DELETE.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "DELETE"
diff --git a/testsuite/build_farm/torture-DENY1.test b/testsuite/build_farm/torture-DENY1.test
new file mode 100644
index 0000000000..99ce7ea886
--- /dev/null
+++ b/testsuite/build_farm/torture-DENY1.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "DENY1"
diff --git a/testsuite/build_farm/torture-DENY2.test b/testsuite/build_farm/torture-DENY2.test
new file mode 100644
index 0000000000..17c8f707d8
--- /dev/null
+++ b/testsuite/build_farm/torture-DENY2.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "DENY2"
diff --git a/testsuite/build_farm/torture-DIR.test b/testsuite/build_farm/torture-DIR.test
new file mode 100644
index 0000000000..085ce59c3b
--- /dev/null
+++ b/testsuite/build_farm/torture-DIR.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "DIR"
diff --git a/testsuite/build_farm/torture-FDPASS.test b/testsuite/build_farm/torture-FDPASS.test
new file mode 100644
index 0000000000..e8af277d43
--- /dev/null
+++ b/testsuite/build_farm/torture-FDPASS.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "FDPASS"
diff --git a/testsuite/build_farm/torture-LOCK1.test b/testsuite/build_farm/torture-LOCK1.test
new file mode 100644
index 0000000000..fd01c492f1
--- /dev/null
+++ b/testsuite/build_farm/torture-LOCK1.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "LOCK1"
diff --git a/testsuite/build_farm/torture-LOCK2.test b/testsuite/build_farm/torture-LOCK2.test
new file mode 100644
index 0000000000..66b671d801
--- /dev/null
+++ b/testsuite/build_farm/torture-LOCK2.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "LOCK2"
diff --git a/testsuite/build_farm/torture-LOCK3.test b/testsuite/build_farm/torture-LOCK3.test
new file mode 100644
index 0000000000..dcf14019d8
--- /dev/null
+++ b/testsuite/build_farm/torture-LOCK3.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "LOCK3"
diff --git a/testsuite/build_farm/torture-LOCK4.test b/testsuite/build_farm/torture-LOCK4.test
new file mode 100644
index 0000000000..8fdc9b6661
--- /dev/null
+++ b/testsuite/build_farm/torture-LOCK4.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "LOCK4"
diff --git a/testsuite/build_farm/torture-LOCK5.test b/testsuite/build_farm/torture-LOCK5.test
new file mode 100644
index 0000000000..a04f83c849
--- /dev/null
+++ b/testsuite/build_farm/torture-LOCK5.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "LOCK5"
diff --git a/testsuite/build_farm/torture-OPEN.test b/testsuite/build_farm/torture-OPEN.test
new file mode 100644
index 0000000000..ee3e55f089
--- /dev/null
+++ b/testsuite/build_farm/torture-OPEN.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "OPEN"
diff --git a/testsuite/build_farm/torture-OPLOCK1.test b/testsuite/build_farm/torture-OPLOCK1.test
new file mode 100644
index 0000000000..bb606ad3bc
--- /dev/null
+++ b/testsuite/build_farm/torture-OPLOCK1.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "OPLOCK1"
diff --git a/testsuite/build_farm/torture-OPLOCK3.test b/testsuite/build_farm/torture-OPLOCK3.test
new file mode 100644
index 0000000000..f8dfb3f8e9
--- /dev/null
+++ b/testsuite/build_farm/torture-OPLOCK3.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "OPLOCK3"
diff --git a/testsuite/build_farm/torture-RANDOMIPC.test b/testsuite/build_farm/torture-RANDOMIPC.test
new file mode 100644
index 0000000000..e510b6b667
--- /dev/null
+++ b/testsuite/build_farm/torture-RANDOMIPC.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "RANDOMIPC"
diff --git a/testsuite/build_farm/torture-RW1.test b/testsuite/build_farm/torture-RW1.test
new file mode 100644
index 0000000000..6be4a897d9
--- /dev/null
+++ b/testsuite/build_farm/torture-RW1.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "RW1"
diff --git a/testsuite/build_farm/torture-RW2.test b/testsuite/build_farm/torture-RW2.test
new file mode 100644
index 0000000000..a647d9de2e
--- /dev/null
+++ b/testsuite/build_farm/torture-RW2.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "RW22"
diff --git a/testsuite/build_farm/torture-TCON.test b/testsuite/build_farm/torture-TCON.test
new file mode 100644
index 0000000000..7d1aba0f29
--- /dev/null
+++ b/testsuite/build_farm/torture-TCON.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "TCON"
diff --git a/testsuite/build_farm/torture-TORTURE.test b/testsuite/build_farm/torture-TORTURE.test
new file mode 100644
index 0000000000..bc97e94e85
--- /dev/null
+++ b/testsuite/build_farm/torture-TORTURE.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "TORTURE"
diff --git a/testsuite/build_farm/torture-TRANS2.test b/testsuite/build_farm/torture-TRANS2.test
new file mode 100644
index 0000000000..d2a387f1af
--- /dev/null
+++ b/testsuite/build_farm/torture-TRANS2.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "TRANS2"
diff --git a/testsuite/build_farm/torture-UNLINK.test b/testsuite/build_farm/torture-UNLINK.test
new file mode 100644
index 0000000000..b7086bbc83
--- /dev/null
+++ b/testsuite/build_farm/torture-UNLINK.test
@@ -0,0 +1,2 @@
+. torture_setup.fns
+test_torture "UNLINK"
diff --git a/testsuite/build_farm/torture_setup.fns b/testsuite/build_farm/torture_setup.fns
new file mode 100644
index 0000000000..bf5146148e
--- /dev/null
+++ b/testsuite/build_farm/torture_setup.fns
@@ -0,0 +1,19 @@
+. basicsmb.fns
+
+test_torture() {
+ torture_test=$1
+ password=samba
+ security=USER
+ (test_smb_conf_setup && test_smbpasswd $password ) || return 1
+
+ echo $srcdir/bin/smbtorture //localhost/test -U$whoami%$password $torture_test
+ $srcdir/bin/smbtorture //localhost/test -U$whoami%$password $torture_test
+ status=$?
+ if [ $status = 0 ]; then
+ echo "smbtorture test $torture_test worked"
+ else
+ echo "smbtorture test $torture_test FAILED!"
+ return 1
+ fi
+ return 0
+}