svn commit: samba r18023 - in branches/SAMBA_4_0/source/script/tests: .

abartlet at samba.org abartlet at samba.org
Mon Sep 4 00:32:47 GMT 2006


Author: abartlet
Date: 2006-09-04 00:32:46 +0000 (Mon, 04 Sep 2006)
New Revision: 18023

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18023

Log:
Add support infrusructure for testing against an OpenLDAP server.

This will give a bit more noise on platforms without OpenLDAP (when we
run the slaptest check), but it shouldn't be too bad.

We don't start the LDAP server or re-provision unless LDAP_TEST is set.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/script/tests/mktestsetup.sh
   branches/SAMBA_4_0/source/script/tests/selftest.sh
   branches/SAMBA_4_0/source/script/tests/test_functions.sh


Changeset:
Modified: branches/SAMBA_4_0/source/script/tests/mktestsetup.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/mktestsetup.sh	2006-09-04 00:27:37 UTC (rev 18022)
+++ branches/SAMBA_4_0/source/script/tests/mktestsetup.sh	2006-09-04 00:32:46 UTC (rev 18023)
@@ -19,6 +19,8 @@
 DOMAIN=SAMBADOMAIN
 USERNAME=administrator
 REALM=SAMBA.EXAMPLE.COM
+DNSNAME="samba.example.com"
+BASEDN="dc=samba,dc=example,dc=com"
 PASSWORD=penguin
 SRCDIR=`pwd`
 ROOT=$USER
@@ -57,11 +59,15 @@
 KEYFILE=$TLSDIR/key.pem
 WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbind_socket
 CONFIGURATION="--configfile=$CONFFILE"
+LDAPDIR=$PREFIX_ABS/ldap
+SLAPD_CONF=$LDAPDIR/slapd.conf
 export CONFIGURATION
 export CONFFILE
+export SLAPD_CONF
+export PIDDIR
 
 rm -rf $PREFIX/*
-mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $TLSDIR
+mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $TLSDIR $LDAPDIR/db
 
 cat >$CONFFILE<<EOF
 [global]
@@ -200,6 +206,7 @@
 [domain_realm]
  .samba.example.com = SAMBA.EXAMPLE.COM
 EOF
+export KRB5_CONFIG
 
 cat >$DHFILE<<EOF 
 -----BEGIN DH PARAMETERS-----
@@ -267,12 +274,76 @@
 
 EOF
 
-export KRB5_CONFIG
+cat >$SLAPD_CONF <<EOF
+loglevel 0
 
-$srcdir/bin/smbscript $srcdir/setup/provision $CONFIGURATION --host-name=$NETBIOSNAME --host-ip=127.0.0.1 \
-    --quiet --domain $DOMAIN --realm $REALM \
-    --adminpass $PASSWORD --root=$ROOT || exit 1
+include $LDAPDIR/ad.schema
 
+pidfile		$PIDDIR/slapd.pid
+argsfile	$LDAPDIR/slapd.args
+
+access to * by * write
+
+allow update_anon bind_anon_dn
+
+include $LDAPDIR/modules.conf
+
+defaultsearchbase "$BASEDN"
+
+backend		bdb
+database        bdb
+suffix		"$BASEDN"
+directory	$LDAPDIR/db
+index           objectClass eq
+index           samAccountName eq
+
+EOF
+
+PROVISION_OPTIONS="$CONFIGURATION --host-name=$NETBIOSNAME --host-ip=127.0.0.1"
+PROVISION_OPTIONS="$PROVISION_OPTIONS --quiet --domain $DOMAIN --realm $REALM"
+PROVISION_OPTIONS="$PROVISION_OPTIONS --adminpass $PASSWORD --root=$ROOT"
+$srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS
+
+LDAPI="ldapi://$LDAPDIR/ldapi"
+LDAPI_ESCAPE="ldapi://"`echo $LDAPDIR/ldapi | sed 's|/|%2F|g'`
+export LDAPI
+export LDAPI_ESCAPE
+
+#This uses the provision we just did, to read out the schema
+$srcdir/bin/ad2oLschema $CONFIGURATION -H $PRIVATEDIR/sam.ldb -I $srcdir/setup/schema-map-openldap-2.3 -O $LDAPDIR/ad.schema
+#Now create an LDAP baseDN
+$srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS --ldap-base
+
+OLDPATH=$PATH
+PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
+export PATH
+
+MODCONF=$LDAPDIR/modules.conf
+rm -f $MODCONF
+touch $MODCONF
+
+if ! slaptest -u -f $SLAPD_CONF > /dev/null 2>&1; then
+    echo "enabling slapd modules"
+    cat > $MODCONF <<EOF 
+modulepath	/usr/lib/ldap
+moduleload	back_bdb
+EOF
+fi
+
+if slaptest -u -f $SLAPD_CONF; then
+    if ! slapadd -f $SLAPD_CONF < $PRIVATEDIR/$DNSNAME.ldif; then
+	echo "slapadd failed"
+    fi
+
+    if ! slaptest -f $SLAPD_CONF; then
+	echo "slaptest after database load failed"
+    fi
+fi
+    
+PATH=$OLDPATH
+export PATH
+
+
 cat >$PRIVATEDIR/wins_config.ldif<<EOF
 dn: name=TORTURE_26,CN=PARTNERS
 objectClass: wreplPartner
@@ -284,3 +355,4 @@
 EOF
 
 $srcdir/bin/ldbadd -H $PRIVATEDIR/wins_config.ldb < $PRIVATEDIR/wins_config.ldif >/dev/null || exit 1
+

Modified: branches/SAMBA_4_0/source/script/tests/selftest.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/selftest.sh	2006-09-04 00:27:37 UTC (rev 18022)
+++ branches/SAMBA_4_0/source/script/tests/selftest.sh	2006-09-04 00:32:46 UTC (rev 18023)
@@ -3,7 +3,7 @@
 
 if [ $# -lt 1 ]
 then
-	echo "$0 PREFIX"
+	echo "$0 PREFIX TESTS"
 	exit
 fi
 
@@ -54,6 +54,16 @@
 incdir=`dirname $ARG0`
 . $incdir/test_functions.sh
 
+#Start slapd before smbd
+if [ x"$TEST_LDAP" = x"yes" ]; then
+    slapd_start
+    echo -n "LDAP PROVISIONING..."
+    if ! $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS --ldap-backend=$LDAPI; then
+	echo "LDAP PROVISIONING failed: $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS --ldap-backend=$LDAPI"
+	exit 1;
+    fi
+fi
+
 SMBD_TEST_FIFO="$PREFIX/smbd_test.fifo"
 export SMBD_TEST_FIFO
 SMBD_TEST_LOG="$PREFIX/smbd_test.log"
@@ -100,6 +110,10 @@
 
 kill `cat $PIDDIR/smbd.pid`
 
+if [ "$TEST_LDAP"x = "yesx" ]; then
+    kill `cat $PIDDIR/slapd.pid`
+fi
+
 END=`date`
 echo "START: $START ($ARG0)";
 echo "END:   $END ($ARG0)";

Modified: branches/SAMBA_4_0/source/script/tests/test_functions.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/test_functions.sh	2006-09-04 00:27:37 UTC (rev 18022)
+++ branches/SAMBA_4_0/source/script/tests/test_functions.sh	2006-09-04 00:32:46 UTC (rev 18023)
@@ -65,6 +65,16 @@
 	return 1;
 }
 
+slapd_start() {
+    OLDPATH=$PATH
+    PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
+    export PATH
+    slapd -f $SLAPD_CONF -h $LDAPI_ESCAPE
+    PATH=$OLDPATH
+    export PATH
+    return 0;
+}
+
 testit() {
 	if [ -z "$PREFIX" ]; then
 	    PREFIX=test_prefix



More information about the samba-cvs mailing list