Doc.
[ira/wip.git] / testsuite / build_farm / basicsmb.fns
index d10aab5b1e787c1f4f99d946cc8e184fdf922428..b3a00ea78393120f3646d12f558ab1d980dbdf7e 100644 (file)
@@ -1,15 +1,65 @@
+#! /bin/sh
+
+# Common functions for Samba build scripts.
+
+# Copyright (C) 2001 by Martin Pool <mbp@samba.org>
+
+# 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.  
+
+template_smb_conf_setup() {
+       cat basicsmb.smb.conf$1.template | \
+              sed "s|PREFIX|$prefix|g" | \
+             sed "s|BUILD_FARM|$pwd|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() {
-       cat basicsmb.smb.conf.template | sed "s|PREFIX|$prefix|g" | sed "s|BUILD_FARM|$pwd|g" > $prefix/lib/smb.conf
+    echo "test_smb_conf_setup: Configuring: "
+    echo "    PREFIX=$prefix"
+    echo "    BUILD_FARM=$pwd"
+    echo "    WHOAMI=$whoami"
+    echo "    LOGLEVEL=$loglevel"
+
+    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.1    SHARE">>$prefix/lib/lmhosts
-    echo "127.0.0.1    USER">>$prefix/lib/lmhosts
-    echo "127.0.0.1    SERVER">>$prefix/lib/lmhosts
-    echo "127.0.0.1    DOMAIN">>$prefix/lib/lmhosts
-    cp -f basicsmb.smb.conf.share $prefix/lib/smb.conf.share
-    cp -f basicsmb.smb.conf.user $prefix/lib/smb.conf.user
-    cp -f basicsmb.smb.conf.server $prefix/lib/smb.conf.server
-    cp -f basicsmb.smb.conf.domain $prefix/lib/smb.conf.domain
+       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
 }
@@ -21,9 +71,9 @@ test_smbpasswd() {
        ( echo $password ; echo $password; ) | $prefix/bin/smbpasswd -L -s -a $whoami
        status=$?
        if [ $status = 0 ]; then
-           echo "smbpasswd correctly set inital password ($test_smbpasswd_password)"
+           echo "smbpasswd correctly set initial password ($test_smbpasswd_password)"
        else
-           echo "smbpasswd failed to set inital password ($test_smbpasswd_password)! (status $status)"
+           echo "smbpasswd failed to set initial password ($test_smbpasswd_password)! (status $status)"
            return 1
        fi
        return 0
@@ -57,3 +107,18 @@ test_listfilesnpw() {
        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