]> git.sur5r.net Git - openldap/blobdiff - tests/scripts/test007-replication
Add '=' to printableString to be consistent with ASN.1 description
[openldap] / tests / scripts / test007-replication
index da7ab0946d0ee8219c369338781944012c06d366..850052f87d0fd4ee2a25434c1d8b962989512fcf 100755 (executable)
@@ -1,4 +1,17 @@
 #! /bin/sh
 #! /bin/sh
+# $OpenLDAP$
+
+SRCDIR="."
+if test $# -ge 1 ; then
+       SRCDIR=$1; shift
+fi
+BACKEND=ldbm
+if test $# -ge 1 ; then
+       BACKEND=$1; shift
+fi
+
+echo "running defines.sh"
+. $SRCDIR/scripts/defines.sh
 
 #
 # Test replication:
 
 #
 # Test replication:
 # - retrieve database over ldap and compare against expected results
 #
 
 # - retrieve database over ldap and compare against expected results
 #
 
-if test $# -eq 0 ; then
-       SRCDIR="."
-else
-       SRCDIR=$1; shift
-fi
-if test $# -eq 1 ; then
-       BACKEND=$1; shift
-fi
-
-echo "running defines.sh $SRCDIR $BACKEND"
-. $SRCDIR/scripts/defines.sh
-
 if test ! -x $SLURPD ; then
        echo ">>>>> $SLURPD is not executable or do not exist."
        echo ">>>>> Test skipped."
 if test ! -x $SLURPD ; then
        echo ">>>>> $SLURPD is not executable or do not exist."
        echo ">>>>> Test skipped."
@@ -34,17 +35,19 @@ echo "Cleaning up in $REPLDIR..."
 rm -f $REPLDIR/[!C]*
 
 echo "Starting master slapd on TCP/IP port $PORT..."
 rm -f $REPLDIR/[!C]*
 
 echo "Starting master slapd on TCP/IP port $PORT..."
-$SLAPD -f $MASTERCONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+. $CONFFILTER $BACKEND < $MASTERCONF > $DBCONF
+$SLAPD -f $DBCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Starting slave slapd on TCP/IP port $SLAVEPORT..."
 PID=$!
 
 echo "Starting slave slapd on TCP/IP port $SLAVEPORT..."
-$SLAPD -f $SLAVECONF -p $SLAVEPORT -d $LVL $TIMING > $SLAVELOG 2>&1 &
+. $CONFFILTER $BACKEND < $SLAVECONF > $REPLCONF
+$SLAPD -f $REPLCONF -h $SLAVEURI -d $LVL $TIMING > $SLAVELOG 2>&1 &
 SLAVEPID=$!
 
 echo "Using ldapsearch to check that master slapd is running..."
 for i in 0 1 2 3 4 5; do
 SLAVEPID=$!
 
 echo "Using ldapsearch to check that master slapd is running..."
 for i in 0 1 2 3 4 5; do
-       $LDAPSEARCH -L -b "$BASEDN" -h localhost -p $PORT \
-               'cn=Monitor' > /dev/null 2>&1
+       $LDAPSEARCH -s base -b "$MONITOR" -h localhost -p $PORT \
+               'objectclass=*' > /dev/null 2>&1
        RC=$?
        if test $RC = 1 ; then
                echo "Waiting 5 seconds for slapd to start..."
        RC=$?
        if test $RC = 1 ; then
                echo "Waiting 5 seconds for slapd to start..."
@@ -54,8 +57,8 @@ done
 
 echo "Using ldapsearch to check that slave slapd is running..."
 for i in 0 1 2 3 4 5; do
 
 echo "Using ldapsearch to check that slave slapd is running..."
 for i in 0 1 2 3 4 5; do
-       $LDAPSEARCH -L -b "$BASEDN" -h localhost -p $SLAVEPORT \
-               'cn=Monitor' > /dev/null 2>&1
+       $LDAPSEARCH -s base -b "$MONITOR" -h localhost -p $PORT \
+               'objectclass=*' > /dev/null 2>&1
        RC=$?
        if test $RC = 1 ; then
                echo "Waiting 5 seconds for slapd to start..."
        RC=$?
        if test $RC = 1 ; then
                echo "Waiting 5 seconds for slapd to start..."
@@ -64,26 +67,31 @@ for i in 0 1 2 3 4 5; do
 done
 
 echo "Starting slurpd..."
 done
 
 echo "Starting slurpd..."
-$SLURPD -f $MASTERCONF -d 4 -t $REPLDIR > $SLURPLOG 2>&1 &
+$SLURPD -f $MASTERCONF -d ${SLURPD_DEBUG-5} -t $REPLDIR > $SLURPLOG 2>&1 &
 SLURPPID=$!
 
 SLURPPID=$!
 
-echo "Using ldapmodify to populate the database..."
-$LDAPMODIFY -a -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD < \
+echo "Using ldapadd to populate the master directory..."
+$LDAPADD -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD < \
        $LDIFORDERED > /dev/null 2>&1
 RC=$?
 if test $RC != 0 ; then
        $LDIFORDERED > /dev/null 2>&1
 RC=$?
 if test $RC != 0 ; then
-       echo "ldapmodify failed!"
-       kill -HUP $PID $SLAVEPID $SLURPPID
+       echo "ldapadd failed ($RC)!"
+       kill -INT $PID $SLAVEPID
+       kill -KILL $SLURPPID
        exit $RC
 fi
 
        exit $RC
 fi
 
-echo "Using ldapmodify to modify the database..."
+echo "Waiting 15 seconds for slurpd to send changes..."
+sleep 15
+
+echo "Using ldapmodify to modify master directory..."
+
 #
 # Do some modifications
 #
 
 $LDAPMODIFY -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \
 #
 # Do some modifications
 #
 
 $LDAPMODIFY -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \
-       /dev/null 2>&1 << EOMODS
+       $TESTOUT 2>&1 << EOMODS
 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
 changetype: modify
 add: drink
 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
 changetype: modify
 add: drink
@@ -117,18 +125,14 @@ objectclass: top
 objectclass: person
 objectclass: organizationalPerson
 objectclass: newPilotPerson
 objectclass: person
 objectclass: organizationalPerson
 objectclass: newPilotPerson
-objectclass: umichPerson
 cn: Gern Jensen
 cn: Gern Jensen
+sn: Jensen
 title: Chief Investigator, ITD
 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US
 title: Chief Investigator, ITD
 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US
-uid: gjensen
-krbname: gjensen@umich.edu
-nobatchupdates: TRUE
-onvacation: FALSE
 drink: Coffee
 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
 drink: Coffee
 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
-multilinedescription: Very odd
+description: Very odd
 facsimiletelephonenumber: +1 313 555 7557
 telephonenumber: +1 313 555 8343
 mail: gjensen@mailgw.umich.edu
 facsimiletelephonenumber: +1 313 555 7557
 telephonenumber: +1 313 555 8343
 mail: gjensen@mailgw.umich.edu
@@ -143,29 +147,41 @@ echo "Waiting 15 seconds for slurpd to send changes..."
 sleep 15
 
 echo "Using ldapsearch to read all the entries from the master..."
 sleep 15
 
 echo "Using ldapsearch to read all the entries from the master..."
-$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \
+$LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $PORT \
        'objectclass=*' > $MASTEROUT 2>&1
 
 if test $RC != 0 ; then
        'objectclass=*' > $MASTEROUT 2>&1
 
 if test $RC != 0 ; then
-       echo "ldapsearch failed!"
-       kill -HUP $PID $SLAVEPID $SLURPPID
+       echo "ldapsearch failed ($RC)!"
+       kill -INT $PID $SLAVEPID
+       kill -KILL $SLURPPID
        exit $RC
 fi
 
 echo "Using ldapsearch to read all the entries from the slave..."
        exit $RC
 fi
 
 echo "Using ldapsearch to read all the entries from the slave..."
-$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $SLAVEPORT \
+$LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $SLAVEPORT \
        'objectclass=*' > $SLAVEOUT 2>&1
 
 if test $RC != 0 ; then
        'objectclass=*' > $SLAVEOUT 2>&1
 
 if test $RC != 0 ; then
-       echo "ldapsearch failed!"
-       kill -HUP $PID $SLAVEPID $SLURPPID
+       echo "ldapsearch failed ($RC)!"
+       kill -INT $PID $SLAVEPID
+       kill -KILL $SLURPPID
        exit $RC
 fi
 
        exit $RC
 fi
 
-kill -HUP $PID $SLAVEPID $SLURPPID
+kill -INT $PID $SLAVEPID
+kill -KILL $SLURPPID
+
+SEARCHOUT=$MASTEROUT
+LDIF=$SLAVEOUT
+
+echo "Filtering ldapsearch results..."
+. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+echo "Filtering original ldif used to create database..."
+. $LDIFFILTER < $LDIF > $LDIFFLT
 
 echo "Comparing retrieved entries from master and slave..."
 
 echo "Comparing retrieved entries from master and slave..."
-cmp $MASTEROUT $SLAVEOUT
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
+
 if test $? != 0 ; then
        echo "test failed - master and slave databases differ"
        exit 1
 if test $? != 0 ; then
        echo "test failed - master and slave databases differ"
        exit 1