X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=tests%2Fscripts%2Ftest018-syncreplication-persist;h=c0d364dad2986637de759bcd72d1674f99a61e82;hb=b30fc9f571a4a04487cdbff1891c1d4d89fbf9d6;hp=ec9cc06090a9898afea1a394ac3840fbf6575d6e;hpb=cd6a5abf2288792f157d82a3fd9a83058d3a0237;p=openldap diff --git a/tests/scripts/test018-syncreplication-persist b/tests/scripts/test018-syncreplication-persist index ec9cc06090..c0d364dad2 100755 --- a/tests/scripts/test018-syncreplication-persist +++ b/tests/scripts/test018-syncreplication-persist @@ -13,7 +13,7 @@ ## top-level directory of the distribution or, alternatively, at ## . -if test "$BACKEND" != "bdb" -a "$BACKEND" != "hdb" ; then +if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" ; then echo "Test does not support $BACKEND" exit 0 fi @@ -34,6 +34,7 @@ mkdir -p $TESTDIR $DBDIR1 $DBDIR4 # - start slave # - populate over ldap # - perform some modifies and deleted +# - attempt to modify the slave (referral or chain) # - retrieve database over ldap and compare against expected results # @@ -47,6 +48,8 @@ if test $WAIT != 0 ; then fi KILLPIDS="$PID" +sleep 1 + echo "Using ldapsearch to check that master slapd is running..." for i in 0 1 2 3 4 5; do $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \ @@ -85,6 +88,8 @@ if test $WAIT != 0 ; then fi KILLPIDS="$KILLPIDS $SLAVEPID" +sleep 1 + echo "Using ldapsearch to check that slave slapd is running..." for i in 0 1 2 3 4 5; do $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT4 \ @@ -116,6 +121,38 @@ fi echo "Waiting 15 seconds for syncrepl to receive changes..." sleep 15 +echo "Stopping the provider, sleeping 10 seconds and restarting it..." +kill -HUP "$PID" +sleep 10 +echo "RESTART" >> $LOG1 +$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING >> $LOG1 2>&1 & +PID=$! +if test $WAIT != 0 ; then + echo PID $PID + read foo +fi +KILLPIDS="$PID $SLAVEPID" + +sleep 1 + +echo "Using ldapsearch to check that master slapd is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \ + 'objectclass=*' > /dev/null 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for slapd to start..." + sleep 5 +done + +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + echo "Using ldapmodify to modify master directory..." # @@ -242,7 +279,7 @@ KILLPIDS="$PID $SLAVEPID" echo "Waiting 25 seconds for syncrepl to receive changes..." sleep 25 -echo "Try updating the slave..." +echo "Try updating the slave slapd..." $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT4 -w $PASSWD > \ $TESTOUT 2>&1 << EOMODS dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com @@ -255,11 +292,24 @@ EOMODS RC=$? -# expect 10 (LDAP_REFERRAL)... -if test $RC != 10 ; then - echo "ldapmodify should have failed ($RC)!" - test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC +if test $BACKLDAP = "ldapno" ; then + # expect 10 (LDAP_REFERRAL)... + if test $RC != 10 ; then + echo "ldapmodify should have failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC + fi + +else + # expect 0 (LDAP_SUCCESS)... + if test $RC != 0 ; then + echo "ldapmodify failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC + fi + + echo "Waiting 15 seconds for syncrepl to receive changes..." + sleep 15 fi echo "Using ldapsearch to read all the entries from the master..."