]> git.sur5r.net Git - openldap/blobdiff - tests/scripts/test032-chain
add some failed binds (but don't log too much)
[openldap] / tests / scripts / test032-chain
index de27ec0fce855c383982382ac3fc599630eb6534..e03d55d1da6e0887ada3af27a16ae775bbaa1064 100755 (executable)
@@ -2,7 +2,7 @@
 # $OpenLDAP$
 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
 ##
-## Copyright 1998-2005 The OpenLDAP Foundation.
+## Copyright 1998-2006 The OpenLDAP Foundation.
 ## All rights reserved.
 ##
 ## Redistribution and use in source and binary forms, with or without
@@ -21,6 +21,8 @@ if test $BACKLDAP = "ldapno" ; then
        exit 0
 fi 
 
+rm -rf $TESTDIR
+
 mkdir -p $TESTDIR $DBDIR1 $DBDIR2
 
 echo "Running slapadd to build slapd database..."
@@ -50,6 +52,7 @@ if test $WAIT != 0 ; then
     echo PID $PID1
     read foo
 fi
+KILLPIDS="$PID1"
 
 echo "Starting second slapd on TCP/IP port $PORT2..."
 . $CONFFILTER $BACKEND $MONITORDB < $CHAINCONF2 > $CONF2
@@ -60,7 +63,9 @@ if test $WAIT != 0 ; then
     read foo
 fi
 
-KILLPIDS="$PID1 $PID2"
+KILLPIDS="$KILLPIDS $PID2"
+
+sleep 1
 
 echo "Using ldapsearch to check that first slapd is running..."
 for i in 0 1 2 3 4 5; do
@@ -74,6 +79,12 @@ for i in 0 1 2 3 4 5; do
        sleep 5
 done
 
+if test $RC != 0 ; then
+       echo "ldapsearch failed ($RC)!"
+       test $KILLSERVERS != no && kill -HUP $KILLPIDS
+       exit $RC
+fi
+
 echo "Using ldapsearch to check that second slapd is running..."
 for i in 0 1 2 3 4 5; do
        $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \
@@ -86,6 +97,12 @@ for i in 0 1 2 3 4 5; do
        sleep 5
 done
 
+if test $RC != 0 ; then
+       echo "ldapsearch failed ($RC)!"
+       test $KILLSERVERS != no && kill -HUP $KILLPIDS
+       exit $RC
+fi
+
 for P in $PORT1 $PORT2 ; do
        echo "Testing ldapsearch as anonymous for \"$BASEDN\" on port $P..."
        $LDAPSEARCH -h $LOCALHOST -p $P -b "$BASEDN" -S "" \
@@ -110,6 +127,54 @@ for P in $PORT1 $PORT2 ; do
                test $KILLSERVERS != no && kill -HUP $KILLPIDS
                exit 1
        fi
+
+       echo "Reading the referral entry "ou=Other,$BASEDN" as anonymous on port $P..."
+       $LDAPSEARCH -h $LOCALHOST -p $P -b "ou=Other,$BASEDN" -S "" \
+                > $SEARCHOUT 2>&1
+
+       RC=$?
+       if test $RC != 0 ; then
+               echo "ldapsearch failed ($RC)!"
+               test $KILLSERVERS != no && kill -HUP $KILLPIDS
+               exit $RC
+       fi
+
+       echo "Filtering ldapsearch results..."
+       . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+       echo "Filtering original ldif used to create database..."
+       . $LDIFFILTER < $CHAINREFOUT > $LDIFFLT
+       echo "Comparing filter output..."
+       $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
+               
+       if test $? != 0 ; then
+               echo "comparison failed - chained search didn't succeed"
+               test $KILLSERVERS != no && kill -HUP $KILLPIDS
+               exit 1
+       fi
+
+       DN="cn=Mark Elliot,ou=Alumni Association,ou=People,$BASEDN"
+       echo "Comparing \"$DN\" on port $P..."
+       $LDAPCOMPARE -h $LOCALHOST -p $P "$DN" "cn:Mark Elliot" \
+                > $TESTOUT 2>&1
+
+       RC=$?
+       if test $RC != 6 ; then
+               echo "ldapcompare failed ($RC)!"
+               test $KILLSERVERS != no && kill -HUP $KILLPIDS
+               exit $RC
+       fi
+
+       DN="ou=Other,$BASEDN"
+       echo "Comparing \"$DN\" on port $P with manageDSAit control..."
+       $LDAPCOMPARE -h $LOCALHOST -p $P -M "$DN" "ou:Other" \
+                > $TESTOUT 2>&1
+
+       RC=$?
+       if test $RC != 6 ; then
+               echo "ldapcompare failed ($RC)!"
+               test $KILLSERVERS != no && kill -HUP $KILLPIDS
+               exit $RC
+       fi
 done
 
 #
@@ -242,5 +307,7 @@ fi
 test $KILLSERVERS != no && kill -HUP $KILLPIDS
 
 echo ">>>>> Test succeeded"
-exit 0
 
+test $KILLSERVERS != no && wait
+
+exit 0