openldap/tests/scripts/test004-modify
Kurt Zeilenga 6585d34a0f 'make test' now tests both BDB2 and LDBM backends.
'make bdb2' tests only BDB2
'make ldbm' tests only LDBM
Fix up scripts (previous changes broke BDB2 testing)
1999-04-10 04:42:33 +00:00

137 lines
3.4 KiB
Bash
Executable File

#!/bin/sh
if [ $# -eq 0 ]; then
SRCDIR="."
else
SRCDIR=$1; shift
fi
if [ $# -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 [ $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 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
RC=$?
if [ $RC = 1 ]; then
echo "Waiting 5 seconds for slapd to start..."
sleep 5
fi
done
if [ $RC != 0 ]; then
echo "ldapsearch failed!"
kill -HUP $PID
exit $RC
fi
cat /dev/null > $TESTOUT
echo "Testing modify, add, and delete..."
$LDAPMODIFY -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \
/dev/null 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
dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
changetype: modify
replace: multilinedescription
multilinedescription: The replaced multiLineDescription $ Blah Woof.
-
replace: drink
drink: Iced Tea
drink: Mad Dog 20/20
dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US
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: member
dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
changetype: add
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: newPilotPerson
objectclass: umichPerson
cn: Gern 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
uid: gjensen
krbname: gjensen@umich.edu
nobatchupdates: TRUE
onvacation: FALSE
drink: Coffee
homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
multilinedescription: Very odd
facsimiletelephonenumber: +1 313 555 7557
telephonenumber: +1 313 555 8343
mail: gjensen@mailgw.umich.edu
homephone: +1 313 555 8844
dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
changetype: delete
EOMODS
RC=$?
if [ $RC != 0 ]; then
echo "ldapmodify failed!"
kill -HUP $PID
exit $RC
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
RC=$?
kill -HUP $PID
if [ $RC != 0 ]; then
echo "ldapsearch failed!"
exit $RC
fi
echo "Comparing database to reference file"
cmp $SEARCHOUT $MODIFYOUTMASTER
if [ $? != 0 ]; then
echo "comparison failed - modify operations did not complete correctly"
exit 1
fi
echo ">>>>> Test succeeded"
exit 0