diff --git a/CHANGES b/CHANGES index 57acb30d6999b2b33ea6b469960be06f4c44c355..b0382b36e2973cf1a763b7a5f01e7f329729d1c6 100644 --- a/CHANGES +++ b/CHANGES @@ -39,6 +39,7 @@ OpenLDAP 2.4.20 Engineering Added additional operations for ITS#6332 Fixed memrchr define (ITS#6351) Fixed slapd MAXPATHLEN handling (ITS#6342) + Added test050 rapid add/mod/del sequence (ITS#6368) Fixed test057 handling of memberof/refint (ITS#6343) Fixed slapd test error ignoring (ITS#6345) Fixed liblutil constant (ITS#5909) diff --git a/tests/scripts/test050-syncrepl-multimaster b/tests/scripts/test050-syncrepl-multimaster index 1b3c90ce60d90b3edc397f964d2f686786898239..4eaff2bfcb427189eaf13a07b62d208105d2b760 100755 --- a/tests/scripts/test050-syncrepl-multimaster +++ b/tests/scripts/test050-syncrepl-multimaster @@ -674,9 +674,71 @@ n=`expr $n + 1` done # Insert modifications and more tests here. +echo "Waiting $SLEEP2 seconds for servers to resync..." +sleep $SLEEP2 + +echo "Using ldapmodify to add/modify/delete entries from server 1..." +for i in 1 2 3 4 5 6 7 8 9 10; do +echo " iteration $i" +$LDAPMODIFY -D "$MANAGERDN" -H $URI1 -w $PASSWD \ + >> $TESTOUT 2>&1 << EOMODS +dn: cn=Add-Mod-Del,dc=example,dc=com +changetype: add +cn: Add/Mod/Del +objectclass: organizationalRole + +dn: cn=Add-Mod-Del,dc=example,dc=com +changetype: modify +replace: description +description: guinea pig +- + +dn: cn=Add-Mod-Del,dc=example,dc=com +changetype: delete +EOMODS +RC=$? +if test $RC != 0 ; then + echo "ldapmodify failed for server 1 database ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi +done + echo "Waiting $SLEEP1 seconds for servers to resync..." sleep $SLEEP1 +n=1 +while [ $n -le $MMR ]; do +PORT=`expr $BASEPORT + $n` +URI="ldap://${LOCALHOST}:$PORT/" + +echo "Using ldapsearch to read all the entries from server $n..." +$LDAPSEARCH -S "" -b "$BASEDN" -D "$MANAGERDN" -H $URI -w $PASSWD \ + 'objectclass=*' > $TESTDIR/server$n.out 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed at server $n ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi +. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt +n=`expr $n + 1` +done + +n=2 +while [ $n -le $MMR ]; do +echo "Comparing retrieved entries from server 1 and server $n..." +$CMP $MASTERFLT $TESTDIR/server$n.flt > $CMPOUT + +if test $? != 0 ; then + echo "test failed - server 1 and server $n databases differ" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 +fi +n=`expr $n + 1` +done + test $KILLSERVERS != no && kill -HUP $KILLPIDS echo ">>>>> Test succeeded"