1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-19 21:57:57 +03:00

r18023: 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
(This used to be commit 999d989131f41d0218ec05595c9761aff5bbf5fa)
This commit is contained in:
Andrew Bartlett 2006-09-04 00:32:46 +00:00 committed by Gerald (Jerry) Carter
parent 173d17ab2f
commit 36ca11b00a
3 changed files with 102 additions and 6 deletions

@ -19,6 +19,8 @@ fi
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 @@ CERTFILE=$TLSDIR/cert.pem
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 @@ cat >$KRB5_CONFIG<<EOF
[domain_realm]
.samba.example.com = SAMBA.EXAMPLE.COM
EOF
export KRB5_CONFIG
cat >$DHFILE<<EOF
-----BEGIN DH PARAMETERS-----
@ -267,11 +274,75 @@ cSlMYli1H9MEXH0pQMGv5Qyd0OYIx2DDg96mZ+aFvqSG
EOF
export KRB5_CONFIG
cat >$SLAPD_CONF <<EOF
loglevel 0
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
$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
cat >$PRIVATEDIR/wins_config.ldif<<EOF
dn: name=TORTURE_26,CN=PARTNERS
@ -284,3 +355,4 @@ type: 0x3
EOF
$srcdir/bin/ldbadd -H $PRIVATEDIR/wins_config.ldb < $PRIVATEDIR/wins_config.ldif >/dev/null || exit 1

@ -3,7 +3,7 @@
if [ $# -lt 1 ]
then
echo "$0 PREFIX"
echo "$0 PREFIX TESTS"
exit
fi
@ -54,6 +54,16 @@ fi
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 @@ failed=$?
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)";

@ -65,6 +65,16 @@ smbd_have_test_log() {
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