xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/sql-test900-write (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
12de962bdSlukem#! /bin/sh
2d11b170bStron# $OpenLDAP$
32de962bdSlukem## This work is part of OpenLDAP Software <http://www.openldap.org/>.
42de962bdSlukem##
5*e670fd5cSchristos## Copyright 1998-2021 The OpenLDAP Foundation.
62de962bdSlukem## All rights reserved.
72de962bdSlukem##
82de962bdSlukem## Redistribution and use in source and binary forms, with or without
92de962bdSlukem## modification, are permitted only as authorized by the OpenLDAP
102de962bdSlukem## Public License.
112de962bdSlukem##
122de962bdSlukem## A copy of this license is available in the file LICENSE in the
132de962bdSlukem## top-level directory of the distribution or, alternatively, at
142de962bdSlukem## <http://www.OpenLDAP.org/license.html>.
152de962bdSlukem
162de962bdSlukemecho "running defines.sh"
172de962bdSlukem. $SRCDIR/scripts/defines.sh
182de962bdSlukem
192de962bdSlukemif test $BACKSQL = "sqlno" ; then
202de962bdSlukem	echo "SQL backend not available, test skipped"
212de962bdSlukem	exit 0
222de962bdSlukemfi
232de962bdSlukem
242de962bdSlukemif test $RDBMS = "rdbmsno" ; then
252de962bdSlukem	echo "SQL test not requested, test skipped"
262de962bdSlukem	exit 0
272de962bdSlukemfi
282de962bdSlukem
292de962bdSlukemif test "${RDBMSWRITE}" != "yes"; then
302de962bdSlukem	echo "write test disabled for ${RDBMS}; set SLAPD_USE_SQLWRITE=yes to enable"
312de962bdSlukem	exit 0
322de962bdSlukemfi
332de962bdSlukem
342de962bdSlukemmkdir -p $TESTDIR
352de962bdSlukem
362de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
37*e670fd5cSchristos. $CONFFILTER $BACKEND < $SQLCONF > $CONF1
38*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
392de962bdSlukemPID=$!
402de962bdSlukemif test $WAIT != 0 ; then
412de962bdSlukem    echo PID $PID
422de962bdSlukem    read foo
432de962bdSlukemfi
442de962bdSlukemKILLPIDS="$PID"
452de962bdSlukem
462de962bdSlukemecho "Testing SQL backend write operations..."
472de962bdSlukemfor i in 0 1 2 3 4 5; do
48*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
492de962bdSlukem		'objectclass=*' > /dev/null 2>&1
502de962bdSlukem	RC=$?
512de962bdSlukem	if test $RC = 0 ; then
522de962bdSlukem		break
532de962bdSlukem	fi
542de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
552de962bdSlukem	sleep 5
562de962bdSlukemdone
572de962bdSlukem
582de962bdSlukemif test $RC != 0 ; then
592de962bdSlukem	echo "ldapsearch failed ($RC)!"
602de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
612de962bdSlukem	exit $RC
622de962bdSlukemfi
632de962bdSlukem
642de962bdSlukemcat /dev/null > $SEARCHOUT
652de962bdSlukem
662de962bdSlukemBASEDN="dc=example,dc=com"
672de962bdSlukem
682de962bdSlukemecho "Using ldapsearch to retrieve all the entries..."
692de962bdSlukemecho "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
70*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
712de962bdSlukem	 "objectClass=*" >> $SEARCHOUT 2>&1
722de962bdSlukem
732de962bdSlukemRC=$?
742de962bdSlukemif test $RC != 0 ; then
752de962bdSlukem	echo "ldapsearch failed ($RC)!"
762de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
772de962bdSlukem	exit $RC
782de962bdSlukemfi
792de962bdSlukem
802de962bdSlukemcase ${RDBMS} in
812de962bdSlukem	# list here the RDBMSes whose mapping allows writes
822de962bdSlukempgsql|ibmdb2)
832de962bdSlukem	MANAGERDN="cn=Manager,${BASEDN}"
842de962bdSlukem	echo "Testing add..."
852de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
86*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
872de962bdSlukemversion: 1
882de962bdSlukem
892de962bdSlukem# Adding an organization...
902de962bdSlukemdn: o=An Org,${BASEDN}
912de962bdSlukemchangetype: add
922de962bdSlukemobjectClass: organization
932de962bdSlukemo: An Org
942de962bdSlukem
952de962bdSlukem# Adding an organization with an "auxiliary" objectClass..
962de962bdSlukemdn: dc=subnet,${BASEDN}
972de962bdSlukemchangetype: add
982de962bdSlukemobjectClass: organization
992de962bdSlukemobjectClass: dcObject
1002de962bdSlukemo: SubNet
1012de962bdSlukemdc: subnet
1022de962bdSlukem
1032de962bdSlukem# Adding another organization with an "auxiliary" objectClass..
1042de962bdSlukemdn: dc=subnet2,${BASEDN}
1052de962bdSlukemchangetype: add
1062de962bdSlukemobjectClass: organization
1072de962bdSlukemobjectClass: dcObject
1082de962bdSlukemo: SubNet 2
1092de962bdSlukemdc: subnet2
1102de962bdSlukem
1112de962bdSlukem# Adding a person...
1122de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN}
1132de962bdSlukemchangetype: add
1142de962bdSlukemobjectClass: inetOrgPerson
1152de962bdSlukemcn: Lev Tolstoij
1162de962bdSlukemsn: Tolstoij
1172de962bdSlukemgivenName: Lev
1182de962bdSlukemtelephoneNumber: +39 02 XXXX YYYY
1192de962bdSlukemtelephoneNumber: +39 02 XXXX ZZZZ
1202de962bdSlukemuserPassword: tanja
1212de962bdSlukem
1222de962bdSlukem# Adding a person with an "auxiliary" objectClass...
1232de962bdSlukemdn: cn=Some One,${BASEDN}
1242de962bdSlukemchangetype: add
1252de962bdSlukemobjectClass: inetOrgPerson
1262de962bdSlukemobjectClass: simpleSecurityObject
1272de962bdSlukemcn: Some One
1282de962bdSlukemsn: One
1292de962bdSlukemgivenName: Some
1302de962bdSlukemtelephoneNumber: +1 800 900 1234
1312de962bdSlukemtelephoneNumber: +1 800 900 1235
1322de962bdSlukemuserPassword: someone
1332de962bdSlukem
1342de962bdSlukem# Adding a person in another subtree...
1352de962bdSlukemdn: cn=SubNet User,dc=subnet,${BASEDN}
1362de962bdSlukemchangetype: add
1372de962bdSlukemobjectClass: inetOrgPerson
1382de962bdSlukemcn: SubNet User
1392de962bdSlukemsn: User
1402de962bdSlukemgivenName: SubNet
1412de962bdSlukem
1422de962bdSlukem# Adding a document...
1432de962bdSlukemdn: documentTitle=War and Peace,${BASEDN}
1442de962bdSlukemchangetype: add
1452de962bdSlukemobjectClass: document
1462de962bdSlukemdescription: Historical novel
1472de962bdSlukemdocumentTitle: War and Peace
1482de962bdSlukemdocumentAuthor: cn=Lev Tolstoij,dc=example,dc=com
1492de962bdSlukemdocumentIdentifier: document 3
1502de962bdSlukemEOMODS
1512de962bdSlukem
1522de962bdSlukem	RC=$?
1532de962bdSlukem	if test $RC != 0 ; then
1542de962bdSlukem		echo "ldapmodify failed ($RC)!"
1552de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
1562de962bdSlukem		exit $RC
1572de962bdSlukem	fi
1582de962bdSlukem
1592de962bdSlukem	echo "Using ldapsearch to retrieve all the entries..."
1602de962bdSlukem	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
161*e670fd5cSchristos	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
1622de962bdSlukem		 "objectClass=*" >> $SEARCHOUT 2>&1
1632de962bdSlukem
1642de962bdSlukem	RC=$?
1652de962bdSlukem	if test $RC != 0 ; then
1662de962bdSlukem		echo "ldapsearch failed ($RC)!"
1672de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
1682de962bdSlukem		exit $RC
1692de962bdSlukem	fi
1702de962bdSlukem
1712de962bdSlukem	echo "Testing modify..."
1722de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
173*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
1742de962bdSlukemversion: 1
1752de962bdSlukem
1762de962bdSlukem# Deleting all telephone numbers...
1772de962bdSlukemdn: cn=Some One,${BASEDN}
1782de962bdSlukemchangetype: modify
1792de962bdSlukemdelete: telephoneNumber
1802de962bdSlukem-
1812de962bdSlukem
1822de962bdSlukem# Adding a telephone number...
1832de962bdSlukemdn: cn=Mitya Kovalev,${BASEDN}
1842de962bdSlukemchangetype: modify
1852de962bdSlukemadd: telephoneNumber
1862de962bdSlukemtelephoneNumber: +1 800 123 4567
1872de962bdSlukem-
1882de962bdSlukem
1892de962bdSlukem# Deleting a specific telephone number and adding a new one...
1902de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN}
1912de962bdSlukemchangetype: modify
1922de962bdSlukemdelete: telephoneNumber
1932de962bdSlukemtelephoneNumber: +39 02 XXXX YYYY
1942de962bdSlukem-
1952de962bdSlukemadd: telephoneNumber
1962de962bdSlukemtelephoneNumber: +39 333 ZZZ 1234
1972de962bdSlukem-
1982de962bdSlukem
1992de962bdSlukem# Adding an author to a document...
2002de962bdSlukemdn: documentTitle=book1,${BASEDN}
2012de962bdSlukemchangetype: modify
2022de962bdSlukemadd: documentAuthor
2032de962bdSlukemdocumentAuthor: cn=Lev Tolstoij,${BASEDN}
2042de962bdSlukem-
2052de962bdSlukem
2062de962bdSlukem# Adding an author to another document...
2072de962bdSlukemdn: documentTitle=book2,${BASEDN}
2082de962bdSlukemchangetype: modify
2092de962bdSlukemadd: documentAuthor
2102de962bdSlukemdocumentAuthor: cn=Lev Tolstoij,${BASEDN}
2112de962bdSlukem-
2122de962bdSlukem
2132de962bdSlukem# Adding an "auxiliary" objectClass...
2142de962bdSlukemdn: cn=Mitya Kovalev,${BASEDN}
2152de962bdSlukemchangetype: modify
2162de962bdSlukemadd: objectClass
2172de962bdSlukemobjectClass: simpleSecurityObject
2182de962bdSlukem-
2192de962bdSlukem
2202de962bdSlukem# Deleting an "auxiliary" objectClass...
2212de962bdSlukemdn: cn=Some One,${BASEDN}
2222de962bdSlukemchangetype: modify
2232de962bdSlukemdelete: objectClass
2242de962bdSlukemobjectClass: simpleSecurityObject
2252de962bdSlukem-
2262de962bdSlukem
2272de962bdSlukem# Deleting userPasswords
2282de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN}
2292de962bdSlukemchangetype: modify
2302de962bdSlukemdelete: userPassword
2312de962bdSlukem-
2322de962bdSlukemEOMODS
2332de962bdSlukem
2342de962bdSlukem	RC=$?
2352de962bdSlukem	if test $RC != 0 ; then
2362de962bdSlukem		echo "ldapmodify failed ($RC)!"
2372de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
2382de962bdSlukem		exit $RC
2392de962bdSlukem	fi
2402de962bdSlukem
2412de962bdSlukem	echo "Using ldapsearch to retrieve all the entries..."
2422de962bdSlukem	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
243*e670fd5cSchristos	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
2442de962bdSlukem		 "objectClass=*" >> $SEARCHOUT 2>&1
2452de962bdSlukem
2462de962bdSlukem	RC=$?
2472de962bdSlukem	if test $RC != 0 ; then
2482de962bdSlukem		echo "ldapsearch failed ($RC)!"
2492de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
2502de962bdSlukem		exit $RC
2512de962bdSlukem	fi
2522de962bdSlukem
2532de962bdSlukem	echo "Testing delete..."
2542de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
255*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
2562de962bdSlukemversion: 1
2572de962bdSlukem
2582de962bdSlukem# Deleting a person...
2592de962bdSlukemdn: cn=Torvlobnor Puzdoy,${BASEDN}
2602de962bdSlukemchangetype: delete
2612de962bdSlukem
2622de962bdSlukem# Deleting a document...
2632de962bdSlukemdn: documentTitle=book1,${BASEDN}
2642de962bdSlukemchangetype: delete
2652de962bdSlukem
2662de962bdSlukem# Deleting an organization with an "auxiliary" objectClass...
2672de962bdSlukemdn: dc=subnet2,${BASEDN}
2682de962bdSlukemchangetype: delete
2692de962bdSlukemEOMODS
2702de962bdSlukem
2712de962bdSlukem	RC=$?
2722de962bdSlukem	if test $RC != 0 ; then
2732de962bdSlukem		echo "ldapmodify failed ($RC)!"
2742de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
2752de962bdSlukem		exit $RC
2762de962bdSlukem	fi
2772de962bdSlukem
2782de962bdSlukem	echo "Using ldapsearch to retrieve all the entries..."
2792de962bdSlukem	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
280*e670fd5cSchristos	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
2812de962bdSlukem		 "objectClass=*" >> $SEARCHOUT 2>&1
2822de962bdSlukem
2832de962bdSlukem	RC=$?
2842de962bdSlukem	if test $RC != 0 ; then
2852de962bdSlukem		echo "ldapsearch failed ($RC)!"
2862de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
2872de962bdSlukem		exit $RC
2882de962bdSlukem	fi
2892de962bdSlukem
2902de962bdSlukem	echo "Testing rename..."
2912de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
292*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
2932de962bdSlukemversion: 1
2942de962bdSlukem
2952de962bdSlukem# Renaming an organization...
2962de962bdSlukemdn: o=An Org,${BASEDN}
2972de962bdSlukemchangetype: modrdn
2982de962bdSlukemnewrdn: o=Renamed Org
2992de962bdSlukemdeleteoldrdn: 1
3002de962bdSlukem
3012de962bdSlukem# Moving a person to another subtree...
3022de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN}
3032de962bdSlukemchangetype: modrdn
3042de962bdSlukemnewrdn: cn=Lev Tolstoij
3052de962bdSlukemdeleteoldrdn: 0
3062de962bdSlukemnewsuperior: dc=subnet,${BASEDN}
3072de962bdSlukem
3082de962bdSlukem# Renaming a book...
3092de962bdSlukemdn: documentTitle=book2,${BASEDN}
3102de962bdSlukemchangetype: modrdn
3112de962bdSlukemnewrdn: documentTitle=Renamed Book
3122de962bdSlukemdeleteoldrdn: 1
3132de962bdSlukemEOMODS
3142de962bdSlukem
3152de962bdSlukem	RC=$?
3162de962bdSlukem	if test $RC != 0 ; then
3172de962bdSlukem		echo "ldapmodify failed ($RC)!"
3182de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3192de962bdSlukem		exit $RC
3202de962bdSlukem	fi
3212de962bdSlukem
3222de962bdSlukem	echo "Using ldapsearch to retrieve all the entries..."
3232de962bdSlukem	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
324*e670fd5cSchristos	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
3252de962bdSlukem		 "objectClass=*" >> $SEARCHOUT 2>&1
3262de962bdSlukem
3272de962bdSlukem	RC=$?
3282de962bdSlukem	if test $RC != 0 ; then
3292de962bdSlukem		echo "ldapsearch failed ($RC)!"
3302de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3312de962bdSlukem		exit $RC
3322de962bdSlukem	fi
3332de962bdSlukem
3342de962bdSlukem	echo "Adding a child to a referral (should fail)..."
3352de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
336*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
3372de962bdSlukemversion: 1
3382de962bdSlukem
3392de962bdSlukemdn: cn=Should Fail,ou=Referral,${BASEDN}
3402de962bdSlukemchangetype: add
3412de962bdSlukemobjectClass: inetOrgPerson
3422de962bdSlukemcn: Should Fail
3432de962bdSlukemsn: Fail
3442de962bdSlukemtelephoneNumber: +39 02 23456789
3452de962bdSlukemEOMODS
3462de962bdSlukem
3472de962bdSlukem	RC=$?
3482de962bdSlukem	if test $RC = 0 ; then
3492de962bdSlukem		echo "ldapmodify should have failed ($RC)!"
3502de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3512de962bdSlukem		exit 1
3522de962bdSlukem	fi
3532de962bdSlukem
3542de962bdSlukem	echo "Modifying a referral (should fail)..."
3552de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
356*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
3572de962bdSlukemversion: 1
3582de962bdSlukem
3592de962bdSlukemdn: ou=Referral,${BASEDN}
3602de962bdSlukemchangetype: modify
3612de962bdSlukemreplace: ref
3622de962bdSlukemref: ldap://localhost:9009/
3632de962bdSlukem-
3642de962bdSlukemEOMODS
3652de962bdSlukem
3662de962bdSlukem	RC=$?
3672de962bdSlukem	if test $RC = 0 ; then
3682de962bdSlukem		echo "ldapmodify should have failed ($RC)!"
3692de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3702de962bdSlukem		exit 1
3712de962bdSlukem	fi
3722de962bdSlukem
3732de962bdSlukem	echo "Renaming a referral (should fail)..."
3742de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
375*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
3762de962bdSlukemversion: 1
3772de962bdSlukem
3782de962bdSlukemdn: ou=Referral,${BASEDN}
3792de962bdSlukemchangetype: modrdn
3802de962bdSlukemnewrdn: ou=Renamed Referral
3812de962bdSlukemdeleteoldrdn: 1
3822de962bdSlukemEOMODS
3832de962bdSlukem
3842de962bdSlukem	RC=$?
3852de962bdSlukem	if test $RC = 0 ; then
3862de962bdSlukem		echo "ldapmodify should have failed ($RC)!"
3872de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3882de962bdSlukem		exit 1
3892de962bdSlukem	fi
3902de962bdSlukem
3912de962bdSlukem	echo "Deleting a referral (should fail)..."
3922de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
393*e670fd5cSchristos		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
3942de962bdSlukemversion: 1
3952de962bdSlukem
3962de962bdSlukemdn: ou=Referral,${BASEDN}
3972de962bdSlukemchangetype: delete
3982de962bdSlukemEOMODS
3992de962bdSlukem
4002de962bdSlukem	RC=$?
4012de962bdSlukem	if test $RC = 0 ; then
4022de962bdSlukem		echo "ldapmodify should have failed ($RC)!"
4032de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4042de962bdSlukem		exit 1
4052de962bdSlukem	fi
4062de962bdSlukem
4072de962bdSlukem	echo "Adding a referral..."
4082de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
409*e670fd5cSchristos		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
4102de962bdSlukemversion: 1
4112de962bdSlukem
4122de962bdSlukemdn: ou=Another Referral,${BASEDN}
4132de962bdSlukemchangetype: add
4142de962bdSlukemobjectClass: referral
4152de962bdSlukemobjectClass: extensibleObject
4162de962bdSlukemou: Another Referral
4172de962bdSlukemref: ldap://localhost:9009/
4182de962bdSlukemEOMODS
4192de962bdSlukem
4202de962bdSlukem	RC=$?
4212de962bdSlukem	if test $RC != 0 ; then
4222de962bdSlukem		echo "ldapmodify failed ($RC)!"
4232de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4242de962bdSlukem		exit $RC
4252de962bdSlukem	fi
4262de962bdSlukem
4272de962bdSlukem	echo "Modifying a referral with manageDSAit..."
4282de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
429*e670fd5cSchristos		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
4302de962bdSlukemversion: 1
4312de962bdSlukem
4322de962bdSlukemdn: ou=Referral,${BASEDN}
4332de962bdSlukemchangetype: modify
4342de962bdSlukemreplace: ref
4352de962bdSlukemref: ldap://localhost:9009/
4362de962bdSlukem-
4372de962bdSlukemEOMODS
4382de962bdSlukem
4392de962bdSlukem	RC=$?
4402de962bdSlukem	if test $RC != 0 ; then
4412de962bdSlukem		echo "ldapmodify failed ($RC)!"
4422de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4432de962bdSlukem		exit $RC
4442de962bdSlukem	fi
4452de962bdSlukem
4462de962bdSlukem	echo "Using ldapsearch to retrieve the modified entry..."
4472de962bdSlukem	echo "# Using ldapsearch to retrieve the modified entry..." >> $SEARCHOUT
448*e670fd5cSchristos	$LDAPSEARCH -S "" -H $URI1 -b "ou=Referral,$BASEDN" -M \
4492de962bdSlukem		 "objectClass=*" '*' ref >> $SEARCHOUT 2>&1
4502de962bdSlukem
4512de962bdSlukem	RC=$?
4522de962bdSlukem	if test $RC != 0 ; then
4532de962bdSlukem		echo "ldapsearch failed ($RC)!"
4542de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4552de962bdSlukem		exit $RC
4562de962bdSlukem	fi
4572de962bdSlukem
4582de962bdSlukem	echo "Renaming a referral with manageDSAit..."
4592de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
460*e670fd5cSchristos		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
4612de962bdSlukemversion: 1
4622de962bdSlukem
4632de962bdSlukemdn: ou=Referral,${BASEDN}
4642de962bdSlukemchangetype: modrdn
4652de962bdSlukemnewrdn: ou=Renamed Referral
4662de962bdSlukemdeleteoldrdn: 1
4672de962bdSlukemEOMODS
4682de962bdSlukem
4692de962bdSlukem	RC=$?
4702de962bdSlukem	if test $RC != 0 ; then
4712de962bdSlukem		echo "ldapmodify failed ($RC)!"
4722de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4732de962bdSlukem		exit $RC
4742de962bdSlukem	fi
4752de962bdSlukem
4762de962bdSlukem	echo "Using ldapsearch to retrieve the renamed entry..."
4772de962bdSlukem	echo "# Using ldapsearch to retrieve the renamed entry..." >> $SEARCHOUT
478*e670fd5cSchristos	$LDAPSEARCH -S "" -H $URI1 -b "ou=Renamed Referral,$BASEDN" -M \
4792de962bdSlukem		 "objectClass=*" '*' ref >> $SEARCHOUT 2>&1
4802de962bdSlukem
4812de962bdSlukem	RC=$?
4822de962bdSlukem	if test $RC != 0 ; then
4832de962bdSlukem		echo "ldapsearch failed ($RC)!"
4842de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4852de962bdSlukem		exit $RC
4862de962bdSlukem	fi
4872de962bdSlukem
4882de962bdSlukem	echo "Deleting a referral with manageDSAit..."
4892de962bdSlukem	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
490*e670fd5cSchristos		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
4912de962bdSlukemversion: 1
4922de962bdSlukem
4932de962bdSlukemdn: ou=Renamed Referral,${BASEDN}
4942de962bdSlukemchangetype: delete
4952de962bdSlukemEOMODS
4962de962bdSlukem
4972de962bdSlukem	RC=$?
4982de962bdSlukem	if test $RC != 0 ; then
4992de962bdSlukem		echo "ldapmodify failed ($RC)!"
5002de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5012de962bdSlukem		exit $RC
5022de962bdSlukem	fi
5032de962bdSlukem
5042de962bdSlukem	BINDDN="cn=Mitya Kovalev,${BASEDN}"
5052de962bdSlukem	BINDPW="mit"
5062de962bdSlukem	NEWPW="newsecret"
5072de962bdSlukem	echo "Testing passwd change..."
508*e670fd5cSchristos	$LDAPPASSWD -H $URI1 \
5092de962bdSlukem		-D "${BINDDN}" -w ${BINDPW} -s ${NEWPW} \
5102de962bdSlukem		"$BINDDN" >> $TESTOUT 2>&1
5112de962bdSlukem
5122de962bdSlukem	RC=$?
5132de962bdSlukem	if test $RC != 0 ; then
5142de962bdSlukem		echo "ldappasswd failed ($RC)!"
5152de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5162de962bdSlukem		exit $RC
5172de962bdSlukem	fi
5182de962bdSlukem
5192de962bdSlukem	echo -n "Testing bind with new secret... "
520*e670fd5cSchristos	$LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $NEWPW
5212de962bdSlukem	RC=$?
5222de962bdSlukem	if test $RC != 0 ; then
5232de962bdSlukem		echo "ldapwhoami failed ($RC)!"
5242de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5252de962bdSlukem		exit $RC
5262de962bdSlukem	fi
5272de962bdSlukem
5282de962bdSlukem	BINDDN="cn=Some One,${BASEDN}"
5292de962bdSlukem	BINDPW="someone"
5302de962bdSlukem	echo -n "Testing bind with newly added user... "
531*e670fd5cSchristos	$LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $BINDPW
5322de962bdSlukem	RC=$?
5332de962bdSlukem	if test $RC != 0 ; then
5342de962bdSlukem		echo "ldapwhoami failed ($RC)!"
5352de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5362de962bdSlukem		exit $RC
5372de962bdSlukem	fi
5382de962bdSlukem
5392de962bdSlukem	echo "Using ldapsearch to retrieve all the entries..."
5402de962bdSlukem	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
541*e670fd5cSchristos	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
5422de962bdSlukem		 "objectClass=*" >> $SEARCHOUT 2>&1
5432de962bdSlukem
5442de962bdSlukem	RC=$?
5452de962bdSlukem	if test $RC != 0 ; then
5462de962bdSlukem		echo "ldapsearch failed ($RC)!"
5472de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5482de962bdSlukem		exit $RC
5492de962bdSlukem	fi
5502de962bdSlukem
5512de962bdSlukem	echo "Filtering ldapsearch results..."
552ef2f90d3Sadam	$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
5532de962bdSlukem	echo "Filtering modified ldif..."
554ef2f90d3Sadam	$LDIFFILTER < $SQLWRITE > $LDIFFLT
5552de962bdSlukem	echo "Comparing filter output..."
5562de962bdSlukem	$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
5572de962bdSlukem
5582de962bdSlukem	if test $? != 0 ; then
5592de962bdSlukem		echo "comparison failed - SQL mods search didn't succeed"
5602de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5612de962bdSlukem		exit 1
5622de962bdSlukem	fi
5632de962bdSlukem	;;
5642de962bdSlukem
5652de962bdSlukem*)
5662de962bdSlukem	echo "apparently ${RDBMS} does not support writes; skipping..."
5672de962bdSlukem	;;
5682de962bdSlukemesac
5692de962bdSlukem
5702de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
5712de962bdSlukem
5722de962bdSlukemecho ">>>>> Test succeeded"
5732de962bdSlukemexit 0
574