From 4794759993725960913bed92c0b39ac666c40cf1 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Mon, 12 Jul 1999 21:13:36 +0000 Subject: [PATCH] Need to use -s base with "cn=monitor". Replace simple sleep in test008 with search loop --- tests/scripts/test002-populate | 2 +- tests/scripts/test003-search | 61 ++++++--- tests/scripts/test004-modify | 48 ++++--- tests/scripts/test005-modrdn | 219 +++++++++++++++++++++++++++++- tests/scripts/test006-acls | 2 +- tests/scripts/test007-replication | 4 +- tests/scripts/test008-concurrency | 84 ++++++++++++ 7 files changed, 376 insertions(+), 44 deletions(-) create mode 100755 tests/scripts/test008-concurrency diff --git a/tests/scripts/test002-populate b/tests/scripts/test002-populate index cdb949ff15..d12e14accf 100755 --- a/tests/scripts/test002-populate +++ b/tests/scripts/test002-populate @@ -22,7 +22,7 @@ PID=$! echo "Using ldapsearch to check that slapd is running..." for i in 0 1 2 3 4 5; do - $LDAPSEARCH -L -b "$MONITOR" -h localhost -p $PORT \ + $LDAPSEARCH -L -s base -b "$MONITOR" -h localhost -p $PORT \ 'objectclass=*' > /dev/null 2>&1 RC=$? if test $RC = 1 ; then diff --git a/tests/scripts/test003-search b/tests/scripts/test003-search index 0912550608..7c1942879d 100755 --- a/tests/scripts/test003-search +++ b/tests/scripts/test003-search @@ -1,46 +1,56 @@ -#!/bin/sh +#! /bin/sh -. scripts/defines.sh +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 echo "Cleaning up in $DBDIR..." -rm -f $DBDIR/* +rm -f $DBDIR/[!C]* echo "Running ldif2ldbm to build slapd database..." $LDIF2LDBM -f $CONF -i $LDIF -e ../servers/slapd/tools RC=$? -if [ $RC != 0 ]; then +if test $RC != 0 ; then echo "ldif2ldbm failed!" exit $RC fi echo "Starting slapd on TCP/IP port $PORT..." -$SLAPD -f $CONF -p $PORT -d 1 > /dev/null 2>&1 & +$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 & PID=$! echo "Testing slapd searching..." for i in 0 1 2 3 4 5; do - $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ - 'cn=Manager' > /dev/null 2>&1 + $LDAPSEARCH -L -s base -b "$MONITOR" -h localhost -p $PORT \ + 'objectclass=*' > /dev/null 2>&1 RC=$? - if [ $RC = 1 ]; then + if test $RC = 1 ; then echo "Waiting 5 seconds for slapd to start..." sleep 5 fi done -if [ $RC != 0 ]; then +if test $RC != 0 ; then echo "ldapsearch failed!" kill -HUP $PID exit $RC fi -cat /dev/null > $TESTOUT +cat /dev/null > $SEARCHOUT echo "Testing exact searching..." $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ - 'sn=jensen' >> $TESTOUT 2>&1 -if [ $RC != 0 ]; then + 'sn=jensen' >> $SEARCHOUT 2>&1 +if test $RC != 0 ; then echo "ldapsearch failed!" kill -HUP $PID exit $RC @@ -48,8 +58,8 @@ fi echo "Testing OR searching..." $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ - '(|(objectclass=rfc822mailgroup)(sn=jones))' >> $TESTOUT 2>&1 -if [ $RC != 0 ]; then + '(|(objectclass=rfc822mailgroup)(sn=jones))' >> $SEARCHOUT 2>&1 +if test $RC != 0 ; then echo "ldapsearch failed!" kill -HUP $PID exit $RC @@ -57,8 +67,8 @@ fi echo "Testing AND matching and ends-with searching..." $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ - '(&(objectclass=rfc822mailgroup)(cn=A*))' >> $TESTOUT 2>&1 -if [ $RC != 0 ]; then + '(&(objectclass=rfc822mailgroup)(cn=A*))' >> $SEARCHOUT 2>&1 +if test $RC != 0 ; then echo "ldapsearch failed!" kill -HUP $PID exit $RC @@ -66,9 +76,8 @@ fi echo "Testing NOT searching..." $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ - '(!(objectclass=person))' | grep -v "^modifytimestamp:" \ - >> $TESTOUT 2>&1 -if [ $RC != 0 ]; then + '(!(objectclass=person))' >> $SEARCHOUT 2>&1 +if test $RC != 0 ; then echo "ldapsearch failed!" kill -HUP $PID exit $RC @@ -76,9 +85,17 @@ fi kill -HUP $PID -echo "Comparing results" -cmp $TESTOUT $SEARCHOUTMASTER -if [ $? != 0 ]; then +TESTOUT=$SEARCHOUT +LDIF=$SEARCHOUTMASTER + +echo "Filtering ldapsearch results..." +. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT +echo "Comparing filter output..." +cmp $SEARCHFLT $LDIFFLT + +if test $? != 0 ; then echo "Comparison failed" exit 1 fi diff --git a/tests/scripts/test004-modify b/tests/scripts/test004-modify index 09a4fdfee1..b21483a3fe 100755 --- a/tests/scripts/test004-modify +++ b/tests/scripts/test004-modify @@ -1,35 +1,45 @@ -#!/bin/sh +#! /bin/sh -. scripts/defines.sh +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 echo "Cleaning up in $DBDIR..." -rm -f $DBDIR/* +rm -f $DBDIR/[!C]* echo "Running ldif2ldbm to build slapd database..." $LDIF2LDBM -f $CONF -i $LDIF -e ../servers/slapd/tools RC=$? -if [ $RC != 0 ]; then +if test $RC != 0 ; then echo "ldif2ldbm failed!" exit $RC fi echo "Starting slapd on TCP/IP port $PORT..." -$SLAPD -f $CONF -p $PORT -d 1 > /dev/null 2>&1 & +$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 & PID=$! echo "Testing slapd modify operations..." for i in 0 1 2 3 4 5; do - $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ - 'cn=Manager' > /dev/null 2>&1 + $LDAPSEARCH -L -s base -b "$MONITOR" -h localhost -p $PORT \ + 'objectclass=*' > /dev/null 2>&1 RC=$? - if [ $RC = 1 ]; then + if test $RC = 1 ; then echo "Waiting 5 seconds for slapd to start..." sleep 5 fi done -if [ $RC != 0 ]; then +if test $RC != 0 ; then echo "ldapsearch failed!" kill -HUP $PID exit $RC @@ -96,7 +106,7 @@ changetype: delete EOMODS RC=$? -if [ $RC != 0 ]; then +if test $RC != 0 ; then echo "ldapmodify failed!" kill -HUP $PID exit $RC @@ -104,18 +114,24 @@ fi echo "Using ldapsearch to retrieve all the entries..." $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ - 'objectClass=*' | egrep -iv '^createtimestamp:|^modifytimestamp:' \ - > $SEARCHOUT 2>&1 + 'objectClass=*' > $SEARCHOUT 2>&1 RC=$? kill -HUP $PID -if [ $RC != 0 ]; then +if test $RC != 0 ; then echo "ldapsearch failed!" exit $RC fi -echo "Comparing database to reference file" -cmp $SEARCHOUT $MODIFYOUTMASTER -if [ $? != 0 ]; then +LDIF=$MODIFYOUTMASTER + +echo "Filtering ldapsearch results..." +. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT +echo "Comparing filter output..." +cmp $SEARCHFLT $LDIFFLT + +if test $? != 0 ; then echo "comparison failed - modify operations did not complete correctly" exit 1 fi diff --git a/tests/scripts/test005-modrdn b/tests/scripts/test005-modrdn index 0211ada5ca..5dc9f3cdfe 100755 --- a/tests/scripts/test005-modrdn +++ b/tests/scripts/test005-modrdn @@ -1,5 +1,220 @@ -#!/bin/sh +#! /bin/sh -echo "modrdn test not yet written" +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 + +echo "Cleaning up in $DBDIR..." + +rm -f $DBDIR/[!C]* + +echo "Running ldif2ldbm to build slapd database..." +$LDIF2LDBM -f $CONF -i $LDIF -e ../servers/slapd/tools +RC=$? +if test $RC != 0 ; then + echo "ldif2ldbm failed!" + exit $RC +fi + +echo "Starting slapd on TCP/IP port $PORT..." +$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 & +PID=$! +echo "Testing slapd modrdn operations..." + +# Make sure we can search the database +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -L -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..." + sleep 5 + fi +done + +if test $RC != 0 ; then + echo "ldapsearch failed!" + kill -HUP $PID + exit $RC +fi + +cat /dev/null > $TESTOUT + + +# -r used to do remove of old rdn + +echo "Testing modrdn(deleteoldrdn=0)..." +$LDAPMODRDN -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \ + /dev/null 2>&1 'cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US' 'cn=James A Jones III' + +RC=$? +if test $RC != 0 ; then + echo "ldapmodrdn failed!" + kill -HUP $PID + exit $RC +fi + +echo "Testing modrdn(deleteoldrdn=1)..." +$LDAPMODRDN -v -D "$MANAGERDN" -r -h localhost -p $PORT -w $PASSWD > \ + /dev/null 2>&1 'cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US' 'cn=James A Jones II' + +RC=$? +if test $RC != 0 ; then + echo "ldapmodrdn failed!" + kill -HUP $PID + exit $RC +fi + +# Ensure the new rdn's can be found + +echo "Using ldapsearch to retrieve entries using new rdn (cn=James A Jones III)..." +$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ + 'cn=James A Jones III' | egrep -iv '^createtimestamp:|^modifytimestamp:' \ + > $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed!" + kill -HUP $PID + exit $RC +fi + + +LDIF=$MODRDNOUTMASTER1 + +echo "Filtering ldapsearch results..." +. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT +echo "Comparing filter output..." +cmp $SEARCHFLT $LDIFFLT + +if test $? != 0 ; then + echo "comparison failed - modrdn operations did not complete correctly" + kill -HUP $PID + exit 1 +fi + + +echo "Using ldapsearch to retrieve entries using new rdn (cn=James A Jones II)..." +$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ + 'cn=James A Jones II' | egrep -iv '^createtimestamp:|^modifytimestamp:' \ + > $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed!" + kill -HUP $PID + exit $RC +fi + + +LDIF=$MODRDNOUTMASTER2 + +echo "Filtering ldapsearch results..." +. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT +echo "Comparing filter output..." +cmp $SEARCHFLT $LDIFFLT + +if test $? != 0 ; then + echo "comparison failed - modrdn operations did not complete correctly" + kill -HUP $PID + exit 1 +fi + +# Ensure that you cannot find the entry for which the rdn was deleted as +# an attribute. + +echo "Using ldapsearch to retrieve entries using removed rdn (cn=James A Jones 2)..." +$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ + 'cn=James A Jones 2' | egrep -iv '^createtimestamp:|^modifytimestamp:' \ + > /dev/null 2>&1 +RC=$? +if test $RC = 0 ; then + echo "failure: ldapsearch found attribute that was to be removed!" + kill -HUP $PID + exit $RC +fi + +echo "Using ldapsearch to retrieve all the entries..." +$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ + 'objectClass=*' > $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + kill -HUP $PID + echo "ldapsearch failed!" + exit $RC +fi + +LDIF=$MODRDNOUTMASTER0 + +echo "Filtering ldapsearch results..." +. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT +echo "Comparing filter output..." +cmp $SEARCHFLT $LDIFFLT + +if test $? != 0 ; then + echo "comparison failed - modrdn operations did not complete correctly" + kill -HUP $PID + exit 1 +fi + + +echo "Testing modrdn(deleteoldrdn=1), modrdn with new rdn already an att val..." +$LDAPMODRDN -v -D "$MANAGERDN" -r -h localhost -p $PORT -w $PASSWD > \ + /dev/null 2>&1 'cn=James A Jones III, ou=Alumni Association, ou=People, o=University of Michigan, c=US' 'cn=James A Jones 1' + +RC=$? +if test $RC != 0 ; then + echo "ldapmodrdn failed!" + kill -HUP $PID + exit $RC +fi + +# Test that you can use modrdn with an attribute value which was previously +# present + +echo "Using ldapsearch to retrieve entries using new rdn (cn=James A Jones 1)..." +$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ + 'cn=James A Jones 1' | egrep -iv '^createtimestamp:|^modifytimestamp:' \ + > $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed!" + kill -HUP $PID + exit $RC +fi + + +LDIF=$MODRDNOUTMASTER3 + +echo "Filtering ldapsearch results..." +. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT +echo "Comparing filter output..." +cmp $SEARCHFLT $LDIFFLT + +kill -HUP $PID +if test $? != 0 ; then + echo "comparison failed - modrdn operations did not complete correctly" + exit 1 +fi + +echo ">>>>> Test succeeded" + + + +# echo "modrdn test not yet written" exit 0 diff --git a/tests/scripts/test006-acls b/tests/scripts/test006-acls index e1aecc8ca9..05323fc619 100755 --- a/tests/scripts/test006-acls +++ b/tests/scripts/test006-acls @@ -30,7 +30,7 @@ PID=$! echo "Testing slapd access control..." for i in 0 1 2 3 4 5; do - $LDAPSEARCH -L -b "$MONITOR" -h localhost -p $PORT \ + $LDAPSEARCH -L -s base -b "$MONITOR" -h localhost -p $PORT \ 'objectclass=*' > /dev/null 2>&1 RC=$? if test $RC = 1 ; then diff --git a/tests/scripts/test007-replication b/tests/scripts/test007-replication index 2f3c934139..f8e12a521d 100755 --- a/tests/scripts/test007-replication +++ b/tests/scripts/test007-replication @@ -43,7 +43,7 @@ SLAVEPID=$! echo "Using ldapsearch to check that master slapd is running..." for i in 0 1 2 3 4 5; do - $LDAPSEARCH -L -b "$MONITOR" -h localhost -p $PORT \ + $LDAPSEARCH -L -s base -b "$MONITOR" -h localhost -p $PORT \ 'objectclass=*' > /dev/null 2>&1 RC=$? if test $RC = 1 ; then @@ -54,7 +54,7 @@ done echo "Using ldapsearch to check that slave slapd is running..." for i in 0 1 2 3 4 5; do - $LDAPSEARCH -L -b "$MONITOR" -h localhost -p $SLAVEPORT \ + $LDAPSEARCH -L -s base -b "$MONITOR" -h localhost -p $PORT \ 'objectclass=*' > /dev/null 2>&1 RC=$? if test $RC = 1 ; then diff --git a/tests/scripts/test008-concurrency b/tests/scripts/test008-concurrency new file mode 100755 index 0000000000..0cc607a732 --- /dev/null +++ b/tests/scripts/test008-concurrency @@ -0,0 +1,84 @@ +#! /bin/sh + +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 + +echo "Datadir is $DATADIR" + +echo "Cleaning up in $DBDIR..." + +rm -f $DBDIR/[!C* + +echo "Running ldif2ldbm to build slapd database..." +$LDIF2LDBM -f $CONF -i $LDIF -e ../servers/slapd/tools +RC=$? +if test $RC != 0 ; then + echo "ldif2ldbm failed!" + exit $RC +fi + +echo "Waiting 5 seconds for ldif2ldbm to build slapd database..." +sleep 5 + +echo "Starting slapd on TCP/IP port $PORT..." +$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 & +PID=$! + +echo "Using ldapsearch to check that slapd is running..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -L -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..." + sleep 5 + fi +done + +echo "Using tester for concurrent server access..." +$SLAPDTESTER -b "$BASEDN" -P "$PROGDIR" -d "$DATADIR" -h localhost -p $PORT -D "$MANAGERDN" -w $PASSWD -l 50 +RC=$? + +if test $RC != 0 ; then + echo "slapd-tester failed!" + exit $RC +fi + +echo "Using ldapsearch to retrieve all the entries..." +$LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \ + 'objectClass=*' > $SEARCHOUT 2>&1 +RC=$? + +kill -HUP $PID + +if test $RC != 0 ; then + echo "ldapsearch failed!" + exit $RC +fi + +echo "Filtering ldapsearch results..." +. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT +echo "Comparing filter output..." +cmp $SEARCHFLT $LDIFFLT + +if test $? != 0 ; then + echo "comparison failed - database was not created correctly" + exit 1 +fi + +echo ">>>>> Test succeeded" + + +exit 0 -- 2.39.5