See if we can get a slight chance of this actually working...
[ira/wip.git] / testsuite / build_farm / basicsmb.fns
index 68411caff7909da45212f0bd062dc72f55908cd4..75c40e879e4ef1a43a43098c0436c59e7aac5e38 100644 (file)
@@ -1,13 +1,53 @@
+#! /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|$pwd|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
@@ -20,8 +60,7 @@ test_smb_conf_setup() {
     echo "127.0.0.6    DOMAIN">>$prefix/lib/lmhosts
     echo "127.0.0.7    HOSTSEQUIV">>$prefix/lib/lmhosts
 
-       echo $host > $prefix/lib/hosts.equiv
-    echo "localhost" >> $prefix/lib/hosts.equiv
+       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
@@ -47,6 +86,35 @@ test_smbpasswd() {
        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'
@@ -88,3 +156,29 @@ test_listfilesauth_should_deny() {
        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
+