From 579d7878545ecb471ad9a95eab6b07fdad6763d6 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Wed, 22 Oct 2003 07:39:18 +0000 Subject: [PATCH] Forgot to add renamed tests --- tests/scripts/test012-glue-populate | 66 +++ tests/scripts/test019-syncreplication-cascade | 413 ++++++++++++++++++ tests/scripts/test020-proxycache | 249 +++++++++++ 3 files changed, 728 insertions(+) create mode 100755 tests/scripts/test012-glue-populate create mode 100755 tests/scripts/test019-syncreplication-cascade create mode 100755 tests/scripts/test020-proxycache diff --git a/tests/scripts/test012-glue-populate b/tests/scripts/test012-glue-populate new file mode 100755 index 0000000000..5fb58db5dd --- /dev/null +++ b/tests/scripts/test012-glue-populate @@ -0,0 +1,66 @@ +#! /bin/sh +# $OpenLDAP$ + +echo "running defines.sh" +. $SRCDIR/scripts/defines.sh + +mkdir -p $TESTDIR $DBDIR1A $DBDIR1B $DBDIR1C + +echo "Starting slapd on TCP/IP port $PORT..." +. $CONFFILTER $BACKEND $MONITORDB < $GLUECONF > $CONF1 +$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" + +echo "Using ldapsearch to check that 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 + +echo "Using ldapadd to populate the glued database..." +$LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \ + $LDIFORDERED > $TESTOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapadd failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Using ldapsearch to read all the entries..." +$LDAPSEARCH -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ + 'objectclass=*' > $SEARCHOUT 2>&1 +RC=$? + +test $KILLSERVERS != no && kill -HUP $KILLPIDS + +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + exit $RC +fi + +echo "Filtering ldapsearch results..." +. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $LDIFFILTER < $LDIFGLUED > $LDIFFLT +echo "Comparing filter output..." +$CMP $SEARCHFLT $LDIFFLT > $CMPOUT + +if test $? != 0 ; then + echo "comparison failed - database was not created correctly" + exit 1 +fi + +echo ">>>>> Test succeeded" +exit 0 diff --git a/tests/scripts/test019-syncreplication-cascade b/tests/scripts/test019-syncreplication-cascade new file mode 100755 index 0000000000..739c61fd4f --- /dev/null +++ b/tests/scripts/test019-syncreplication-cascade @@ -0,0 +1,413 @@ +#! /bin/sh +# $OpenLDAP$ + +echo "running defines.sh" +. $SRCDIR/scripts/defines.sh + +mkdir $TESTDIR $DBDIR1 $DBDIR2 $DBDIR3 $DBDIR4 $DBDIR5 $DBDIR6 + +# +# Test replication: +# - start master +# - start slave +# - populate over ldap +# - perform some modifies and deleted +# - retrieve database over ldap and compare against expected results +# + +echo "Starting master slapd on TCP/IP port $PORT1..." +. $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $CONF1 +$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" + +echo "Using ldapsearch to check that master slapd (pid=$PID) 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 ldapadd to create the context prefix entry in the master..." +$LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \ + $LDIFORDEREDCP > /dev/null 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapadd failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Starting R1 slave slapd on TCP/IP port $PORT2..." +. $CONFFILTER $BACKEND $MONITORDB < $R1SRSLAVECONF > $CONF2 +$SLAPD -f $CONF2 -h $URI2 -d $LVL $TIMING > $LOG2 2>&1 & +SLAVEPID=$! +if test $WAIT != 0 ; then + echo SLAVE R1 PID $SLAVEPID + read foo +fi +KILLPIDS="$KILLPIDS $SLAVEPID" + +echo "Using ldapsearch to check that R1 slave slapd(pid=$SLAVEPID) is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \ + 'objectclass=*' > /dev/null 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for R1 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 "Starting R2 slave slapd on TCP/IP port $PORT3..." +. $CONFFILTER $BACKEND $MONITORDB < $R2SRSLAVECONF > $CONF3 +$SLAPD -f $CONF3 -h $URI3 -d $LVL $TIMING > $LOG3 2>&1 & +SLAVEPID=$! +if test $WAIT != 0 ; then + echo SLAVE R2 PID $SLAVEPID + read foo +fi +KILLPIDS="$KILLPIDS $SLAVEPID" + +echo "Using ldapsearch to check that R2 slave slapd(pid=$SLAVEPID) is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT3 \ + 'objectclass=*' > /dev/null 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for R2 slave 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 "Starting P1 slave slapd on TCP/IP port $PORT4..." +. $CONFFILTER $BACKEND $MONITORDB < $P1SRSLAVECONF > $CONF4 +$SLAPD -f $CONF4 -h $URI4 -d $LVL $TIMING > $LOG4 2>&1 & +SLAVEPID=$! +if test $WAIT != 0 ; then + echo SLAVE P1 PID $SLAVEPID + read foo +fi +KILLPIDS="$KILLPIDS $SLAVEPID" + +echo "Using ldapsearch to check that P1 slave slapd(pid=$SLAVEPID) is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT4 \ + 'objectclass=*' > /dev/null 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for P1 slave 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 "Starting P2 slave slapd on TCP/IP port $PORT5..." +. $CONFFILTER $BACKEND $MONITORDB < $P2SRSLAVECONF > $CONF5 +$SLAPD -f $CONF5 -h $URI5 -d $LVL $TIMING > $LOG5 2>&1 & +SLAVEPID=$! +if test $WAIT != 0 ; then + echo SLAVE P2 PID $SLAVEPID + read foo +fi +KILLPIDS="$KILLPIDS $SLAVEPID" + +echo "Using ldapsearch to check that P2 slave slapd(pid=$SLAVEPID) is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT5 \ + 'objectclass=*' > /dev/null 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for P2 slave 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 "Starting P3 slave slapd on TCP/IP port $PORT6..." +. $CONFFILTER $BACKEND $MONITORDB < $P3SRSLAVECONF > $CONF6 +$SLAPD -f $CONF6 -h $URI6 -d $LVL $TIMING > $LOG6 2>&1 & +SLAVEPID=$! +if test $WAIT != 0 ; then + echo SLAVE P3 PID $SLAVEPID + read foo +fi +KILLPIDS="$KILLPIDS $SLAVEPID" + +echo "Using ldapsearch to check that P3 slave slapd(pid=$SLAVEPID) is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT6 \ + 'objectclass=*' > /dev/null 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for P3 slave 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 ldapadd to populate the master directory..." +$LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \ + $LDIFORDEREDNOCP > /dev/null 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapadd failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Waiting 90 seconds for syncrepl to receive changes..." +sleep 90 + +echo "Using ldapmodify to modify master directory..." + +# +# Do some modifications +# + +$LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \ + $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 +drink: Orange Juice +- +delete: sn +sn: Jones +- +add: sn +sn: Jones + +dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US +changetype: modify +replace: drink +drink: Iced Tea +drink: Mad Dog 20/20 + +dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US +changetype: modify +delete: member +member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US +member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US +- +add: member +member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Michigan, c=US +member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US + +dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US +changetype: modify +delete: description + +dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US +changetype: add +objectclass: OpenLDAPperson +cn: Gern Jensen +sn: Jensen +uid: gjensen +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 +drink: Coffee +homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104 +description: Very odd +facsimiletelephonenumber: +1 313 555 7557 +telephonenumber: +1 313 555 8343 +mail: gjensen@mailgw.example.com +homephone: +1 313 555 8844 + +dn: ou=Retired, ou=People, o=University of Michigan, c=US +changetype: add +objectclass: organizationalUnit +ou: Retired + +dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US +changetype: add +objectclass: OpenLDAPperson +cn: Rosco P. Coltrane +sn: Coltrane +uid: rosco + +dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US +changetype: modrdn +newrdn: cn=Rosco P. Coltrane +deleteoldrdn: 1 +newsuperior: ou=Retired, ou=People, o=University of Michigan, c=US + +dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US +changetype: delete + +EOMODS + +echo "Waiting 90 seconds for syncrepl to receive changes..." +sleep 90 + +echo "Using ldapsearch to read all the entries from the master..." +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ + 'objectclass=*' > $MASTEROUT 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed at master ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Using ldapsearch to read all the entries from the R1 slave..." +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'objectclass=*' > $SERVER2OUT 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed at R1 slave ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Using ldapsearch to read all the entries from the R2 slave..." +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT3 \ + 'objectclass=*' > $SERVER3OUT 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed at R2 slave ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Using ldapsearch to read all the entries from the P1 slave..." +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT4 \ + 'objectclass=*' > $SERVER4OUT 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed at P1 slave ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Using ldapsearch to read all the entries from the P2 slave..." +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT5 \ + 'objectclass=*' > $SERVER5OUT 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed at P2 slave ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Using ldapsearch to read all the entries from the P3 slave..." +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT6 \ + 'objectclass=*' > $SERVER6OUT 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed at P3 slave ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +test $KILLSERVERS != no && kill -HUP $KILLPIDS + +echo "Filtering master ldapsearch results..." +. $LDIFFILTER < $MASTEROUT > $MASTERFLT +echo "Filtering R1 slave ldapsearch results..." +. $LDIFFILTER < $SERVER2OUT > $SERVER2FLT +echo "Filtering R2 slave ldapsearch results..." +. $LDIFFILTER < $SERVER3OUT > $SERVER3FLT +echo "Filtering P1 slave ldapsearch results..." +. $LDIFFILTER < $SERVER4OUT > $SERVER4FLT +echo "Filtering P2 slave ldapsearch results..." +. $LDIFFILTER < $SERVER5OUT > $SERVER5FLT +echo "Filtering P3 slave ldapsearch results..." +. $LDIFFILTER < $SERVER6OUT > $SERVER6FLT + +echo "Comparing retrieved entries from master and R1 slave..." +$CMP $MASTERFLT $SERVER2FLT > $CMPOUT + +if test $? != 0 ; then + echo "test failed - master and R1 slave databases differ" + exit 1 +fi + +echo "Comparing retrieved entries from master and R2 slave..." +$CMP $MASTERFLT $SERVER3FLT > $CMPOUT + +if test $? != 0 ; then + echo "test failed - master and R2 slave databases differ" + exit 1 +fi + +echo "Comparing retrieved entries from master and P1 slave..." +$CMP $MASTERFLT $SERVER4FLT > $CMPOUT + +if test $? != 0 ; then + echo "test failed - master and P1 slave databases differ" + exit 1 +fi + +echo "Comparing retrieved entries from master and P2 slave..." +$CMP $MASTERFLT $SERVER5FLT > $CMPOUT + +if test $? != 0 ; then + echo "test failed - master and P2 slave databases differ" + exit 1 +fi + +echo "Comparing retrieved entries from master and P3 slave..." +$CMP $MASTERFLT $SERVER6FLT > $CMPOUT + +if test $? != 0 ; then + echo "test failed - master and P3 slave databases differ" + exit 1 +fi + +echo ">>>>> Test succeeded" +exit 0 diff --git a/tests/scripts/test020-proxycache b/tests/scripts/test020-proxycache new file mode 100755 index 0000000000..994e72f3ac --- /dev/null +++ b/tests/scripts/test020-proxycache @@ -0,0 +1,249 @@ +#! /bin/sh +# $OpenLDAP$ + +CACHETTL=60 +CACHE_ENTRY_LIMIT=10 + +. $SRCDIR/scripts/defines.sh + +if test $PROXYCACHE = no; then + echo "Proxy caching requires back-meta AND (back-ldbm OR back-bdb)" + exit 0 +fi + +mkdir -p $TESTDIR $DBDIR1 $DBDIR2 + +# Test proxy caching: +# - start master +# - start proxy cache +# - populate master +# - perform first set of searches at the proxy +# - verify cacheability +# - perform second set of searches at the proxy +# - verify answerability + +echo "Starting master slapd on TCP/IP port $PORT1..." +. $CONFFILTER < $CACHEMASTERCONF > $CONF +$SLAPD -f $CONF -h $URI1 -d $LVL > $LOG1 2>&1 & +PID=$! +if test $WAIT != 0 ; then + echo PID $PID + read foo +fi +KILLPIDS="$PIDS" + +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 ldapadd to populate the master directory..." +$LDAPADD -x -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \ + $LDIFORDERED > /dev/null 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapadd failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Starting proxy cache on TCP/IP port $PORT2..." +. $CONFFILTER < $PROXYCACHECONF > $CONF2 +$SLAPD -f $CONF2 -h $URI2 -d $LVL > $LOG2 2>&1 & +CACHEPID=$! +if test $WAIT != 0 ; then + echo CACHEPID $CACHEPID + read foo +fi +KILLPIDS="$KILLPIDS $CACHEPID" + +echo "Using ldapsearch to check that proxy slapd is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \ + 'objectclass=*' > /dev/null 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for slapd to start..." + sleep 5 +done + +echo "Making queries on the proxy cache..." +echo "Query 1: filter:(sn=Jon) attrs: all" +$LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'sn=Jon' > $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 2: filter:(|(cn=*Jon*)(sn=Jon*)) attrs:cn sn title uid" +$LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + '(|(cn=*Jon*)(sn=Jon*))' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 3: filter:(sn=Smith*) attrs:cn sn title uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'sn=Smith*' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 4: filter:(sn=Doe*) attrs:cn sn title uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'sn=Doe' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 5: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'uid=bjorn' mail postaladdress telephonenumber cn uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 6: filter:(mail=*@example.com) cn sn title uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'mail=*@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 7: filter:(mail=*) cn sn title uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'mail=*' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +# queries 2-6 are cacheable +CACHEABILITY=0111110 +grep CACHEABLE $LOG2 | awk '{ + if ($2 == "NOT") + printf "Query %d not cacheable\n",NR + else + printf "Query %d cacheable\n",NR + }' +CACHED=`grep CACHEABLE $LOG2 | awk '{ + if ($2 == "NOT") + printf "0" + else + printf "1" + }'` + +if test $CACHEABILITY = $CACHED ; then + echo "Successfully verified cacheability" +else + echo "Error in verifying cacheability" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 +fi + +echo "Query 8: filter:(|(cn=*Jones)(sn=Jones)) attrs:cn sn title uid" +$LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + '(|(cn=*Jones)(sn=Jones))' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 9: filter:(sn=Smith) attrs:cn sn title uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'sn=Smith' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 10: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'uid=bjorn' mail postaladdress telephonenumber cn uid >> $SLAVEOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Query 11: filter:(mail=*@example.com) cn sn title uid" +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ + 'mail=jaj@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1 +RC=$? + +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +#queries 8-11 are answerable +ANSWERABILITY=1111 +grep ANSWERABLE $LOG2 | awk '{ + if (NR > 7) { + if ($2 == "NOT") + printf "Query %d not answerable\n",NR + else + printf "Query %d answerable\n",NR + } + }' +ANSWERED=`grep ANSWERABLE $LOG2 | awk '{ + if (NR > 7) { + if ($2 == "NOT") + printf "0" + else + printf "1" + } + }'` + +test $KILLSERVERS != no && kill -HUP $KILLPIDS + +if test $ANSWERABILITY = $ANSWERED ; then + echo "Successfully verified answerability" +else + echo "Error in verifying answerability" + exit 1 +fi + +echo ">>>>> Test succeeded" +exit 0 -- 2.39.5