xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/test019-syncreplication-cascade (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 $SYNCPROV = syncprovno; then
202de962bdSlukem	echo "Syncrepl provider overlay not available, test skipped"
212de962bdSlukem	exit 0
222de962bdSlukemfi
232de962bdSlukem
242de962bdSlukemmkdir -p $TESTDIR $DBDIR1 $DBDIR2 $DBDIR3 $DBDIR4 $DBDIR5 $DBDIR6
252de962bdSlukem
262de962bdSlukem#
272de962bdSlukem# Test replication:
28*e670fd5cSchristos# - start provider
29*e670fd5cSchristos# - start consumer
302de962bdSlukem# - populate over ldap
312de962bdSlukem# - perform some modifies and deleted
322de962bdSlukem# - retrieve database over ldap and compare against expected results
332de962bdSlukem#
342de962bdSlukem
35*e670fd5cSchristosecho "Starting provider slapd on TCP/IP port $PORT1..."
36*e670fd5cSchristos. $CONFFILTER $BACKEND < $SRPROVIDERCONF > $CONF1
37*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
382de962bdSlukemPID=$!
392de962bdSlukemif test $WAIT != 0 ; then
402de962bdSlukem    echo PID $PID
412de962bdSlukem    read foo
422de962bdSlukemfi
432de962bdSlukemKILLPIDS="$PID"
442de962bdSlukem
452de962bdSlukemsleep 1
462de962bdSlukem
47*e670fd5cSchristosecho "Using ldapsearch to check that provider slapd (pid=$PID) is running..."
482de962bdSlukemfor i in 0 1 2 3 4 5; do
49*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
502de962bdSlukem		'objectclass=*' > /dev/null 2>&1
512de962bdSlukem	RC=$?
522de962bdSlukem	if test $RC = 0 ; then
532de962bdSlukem		break
542de962bdSlukem	fi
552de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
562de962bdSlukem	sleep 5
572de962bdSlukemdone
582de962bdSlukem
592de962bdSlukemif test $RC != 0 ; then
602de962bdSlukem	echo "ldapsearch failed ($RC)!"
612de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
622de962bdSlukem	exit $RC
632de962bdSlukemfi
642de962bdSlukem
65*e670fd5cSchristosecho "Using ldapadd to create the context prefix entry in the provider..."
66*e670fd5cSchristos$LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD < \
672de962bdSlukem	$LDIFORDEREDCP > /dev/null 2>&1
682de962bdSlukemRC=$?
692de962bdSlukemif test $RC != 0 ; then
702de962bdSlukem	echo "ldapadd failed ($RC)!"
712de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
722de962bdSlukem	exit $RC
732de962bdSlukemfi
742de962bdSlukem
75*e670fd5cSchristosecho "Starting R1 consumer slapd on TCP/IP port $PORT2..."
76*e670fd5cSchristos. $CONFFILTER $BACKEND < $R1SRCONSUMERCONF > $CONF2
77*e670fd5cSchristos$SLAPD -f $CONF2 -h $URI2 -d $LVL > $LOG2 2>&1 &
78*e670fd5cSchristosCONSUMERPID=$!
792de962bdSlukemif test $WAIT != 0 ; then
80*e670fd5cSchristos    echo CONSUMER R1 PID $CONSUMERPID
812de962bdSlukem    read foo
822de962bdSlukemfi
83*e670fd5cSchristosKILLPIDS="$KILLPIDS $CONSUMERPID"
842de962bdSlukem
852de962bdSlukemsleep 1
862de962bdSlukem
87*e670fd5cSchristosecho "Using ldapsearch to check that R1 consumer slapd (pid=$CONSUMERPID) is running..."
882de962bdSlukemfor i in 0 1 2 3 4 5; do
89*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI2 \
902de962bdSlukem		'objectclass=*' > /dev/null 2>&1
912de962bdSlukem	RC=$?
922de962bdSlukem	if test $RC = 0 ; then
932de962bdSlukem		break
942de962bdSlukem	fi
952de962bdSlukem	echo "Waiting 5 seconds for R1 slapd to start..."
962de962bdSlukem	sleep 5
972de962bdSlukemdone
982de962bdSlukem
992de962bdSlukemif test $RC != 0 ; then
1002de962bdSlukem	echo "ldapsearch failed ($RC)!"
1012de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1022de962bdSlukem	exit $RC
1032de962bdSlukemfi
1042de962bdSlukem
105*e670fd5cSchristosecho "Starting R2 consumer slapd on TCP/IP port $PORT3..."
106*e670fd5cSchristos. $CONFFILTER $BACKEND < $R2SRCONSUMERCONF > $CONF3
107*e670fd5cSchristos$SLAPD -f $CONF3 -h $URI3 -d $LVL > $LOG3 2>&1 &
108*e670fd5cSchristosCONSUMERPID=$!
1092de962bdSlukemif test $WAIT != 0 ; then
110*e670fd5cSchristos    echo CONSUMER R2 PID $CONSUMERPID
1112de962bdSlukem    read foo
1122de962bdSlukemfi
113*e670fd5cSchristosKILLPIDS="$KILLPIDS $CONSUMERPID"
1142de962bdSlukem
1152de962bdSlukemsleep 1
1162de962bdSlukem
117*e670fd5cSchristosecho "Using ldapsearch to check that R2 consumer slapd (pid=$CONSUMERPID) is running..."
1182de962bdSlukemfor i in 0 1 2 3 4 5; do
119*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI3 \
1202de962bdSlukem		'objectclass=*' > /dev/null 2>&1
1212de962bdSlukem	RC=$?
1222de962bdSlukem	if test $RC = 0 ; then
1232de962bdSlukem		break
1242de962bdSlukem	fi
125*e670fd5cSchristos	echo "Waiting 5 seconds for R2 consumer slapd to start..."
1262de962bdSlukem	sleep 5
1272de962bdSlukemdone
1282de962bdSlukem
1292de962bdSlukemif test $RC != 0 ; then
1302de962bdSlukem	echo "ldapsearch failed ($RC)!"
1312de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1322de962bdSlukem	exit $RC
1332de962bdSlukemfi
1342de962bdSlukem
135*e670fd5cSchristosecho "Starting P1 consumer slapd on TCP/IP port $PORT4..."
136*e670fd5cSchristos. $CONFFILTER $BACKEND < $P1SRCONSUMERCONF > $CONF4
137*e670fd5cSchristos$SLAPD -f $CONF4 -h $URI4 -d $LVL > $LOG4 2>&1 &
138*e670fd5cSchristosCONSUMERPID=$!
1392de962bdSlukemif test $WAIT != 0 ; then
140*e670fd5cSchristos    echo CONSUMER P1 PID $CONSUMERPID
1412de962bdSlukem    read foo
1422de962bdSlukemfi
143*e670fd5cSchristosKILLPIDS="$KILLPIDS $CONSUMERPID"
1442de962bdSlukem
1452de962bdSlukemsleep 1
1462de962bdSlukem
147*e670fd5cSchristosecho "Using ldapsearch to check that P1 consumer slapd (pid=$CONSUMERPID) is running..."
1482de962bdSlukemfor i in 0 1 2 3 4 5; do
149*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI4 \
1502de962bdSlukem		'objectclass=*' > /dev/null 2>&1
1512de962bdSlukem	RC=$?
1522de962bdSlukem	if test $RC = 0 ; then
1532de962bdSlukem		break
1542de962bdSlukem	fi
155*e670fd5cSchristos	echo "Waiting 5 seconds for P1 consumer slapd to start..."
1562de962bdSlukem	sleep 5
1572de962bdSlukemdone
1582de962bdSlukem
1592de962bdSlukemif test $RC != 0 ; then
1602de962bdSlukem	echo "ldapsearch failed ($RC)!"
1612de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1622de962bdSlukem	exit $RC
1632de962bdSlukemfi
1642de962bdSlukem
165*e670fd5cSchristosecho "Starting P2 consumer slapd on TCP/IP port $PORT5..."
166*e670fd5cSchristos. $CONFFILTER $BACKEND < $P2SRCONSUMERCONF > $CONF5
167*e670fd5cSchristos$SLAPD -f $CONF5 -h $URI5 -d $LVL > $LOG5 2>&1 &
168*e670fd5cSchristosCONSUMERPID=$!
1692de962bdSlukemif test $WAIT != 0 ; then
170*e670fd5cSchristos    echo CONSUMER P2 PID $CONSUMERPID
1712de962bdSlukem    read foo
1722de962bdSlukemfi
173*e670fd5cSchristosKILLPIDS="$KILLPIDS $CONSUMERPID"
1742de962bdSlukem
1752de962bdSlukemsleep 1
1762de962bdSlukem
177*e670fd5cSchristosecho "Using ldapsearch to check that P2 consumer slapd (pid=$CONSUMERPID) is running..."
1782de962bdSlukemfor i in 0 1 2 3 4 5; do
179*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI5 \
1802de962bdSlukem		'objectclass=*' > /dev/null 2>&1
1812de962bdSlukem	RC=$?
1822de962bdSlukem	if test $RC = 0 ; then
1832de962bdSlukem		break
1842de962bdSlukem	fi
185*e670fd5cSchristos	echo "Waiting 5 seconds for P2 consumer slapd to start..."
1862de962bdSlukem	sleep 5
1872de962bdSlukemdone
1882de962bdSlukem
1892de962bdSlukemif test $RC != 0 ; then
1902de962bdSlukem	echo "ldapsearch failed ($RC)!"
1912de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1922de962bdSlukem	exit $RC
1932de962bdSlukemfi
1942de962bdSlukem
195*e670fd5cSchristosecho "Starting P3 consumer slapd on TCP/IP port $PORT6..."
196*e670fd5cSchristos. $CONFFILTER $BACKEND < $P3SRCONSUMERCONF > $CONF6
197*e670fd5cSchristos$SLAPD -f $CONF6 -h $URI6 -d $LVL > $LOG6 2>&1 &
198*e670fd5cSchristosCONSUMERPID=$!
1992de962bdSlukemif test $WAIT != 0 ; then
200*e670fd5cSchristos    echo CONSUMER P3 PID $CONSUMERPID
2012de962bdSlukem    read foo
2022de962bdSlukemfi
203*e670fd5cSchristosKILLPIDS="$KILLPIDS $CONSUMERPID"
2042de962bdSlukem
2052de962bdSlukemsleep 1
2062de962bdSlukem
207*e670fd5cSchristosecho "Using ldapsearch to check that P3 consumer slapd (pid=$CONSUMERPID) is running..."
2082de962bdSlukemfor i in 0 1 2 3 4 5; do
209*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI6 \
2102de962bdSlukem		'objectclass=*' > /dev/null 2>&1
2112de962bdSlukem	RC=$?
2122de962bdSlukem	if test $RC = 0 ; then
2132de962bdSlukem		break
2142de962bdSlukem	fi
215*e670fd5cSchristos	echo "Waiting 5 seconds for P3 consumer slapd to start..."
2162de962bdSlukem	sleep 5
2172de962bdSlukemdone
2182de962bdSlukem
2192de962bdSlukemif test $RC != 0 ; then
2202de962bdSlukem	echo "ldapsearch failed ($RC)!"
2212de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2222de962bdSlukem	exit $RC
2232de962bdSlukemfi
2242de962bdSlukem
225*e670fd5cSchristosecho "Using ldapadd to populate the provider directory..."
226*e670fd5cSchristos$LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD < \
2272de962bdSlukem	$LDIFORDEREDNOCP > /dev/null 2>&1
2282de962bdSlukemRC=$?
2292de962bdSlukemif test $RC != 0 ; then
2302de962bdSlukem	echo "ldapadd failed ($RC)!"
2312de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2322de962bdSlukem	exit $RC
2332de962bdSlukemfi
2342de962bdSlukem
2354e6df137Slukemecho "Waiting $SLEEP2 seconds for syncrepl to receive changes..."
2364e6df137Slukemsleep $SLEEP2
2372de962bdSlukem
238*e670fd5cSchristosecho "Using ldapmodify to modify provider directory..."
2392de962bdSlukem
2402de962bdSlukem#
2412de962bdSlukem# Do some modifications
2422de962bdSlukem#
2432de962bdSlukem
244*e670fd5cSchristos$LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD > \
2452de962bdSlukem	$TESTOUT 2>&1 << EOMODS
2462de962bdSlukemdn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
2472de962bdSlukemchangetype: modify
2482de962bdSlukemadd: drink
2492de962bdSlukemdrink: Orange Juice
2502de962bdSlukem-
2512de962bdSlukemdelete: sn
2522de962bdSlukemsn: Jones
2532de962bdSlukem-
2542de962bdSlukemadd: sn
2552de962bdSlukemsn: Jones
2562de962bdSlukem
2572de962bdSlukemdn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
2582de962bdSlukemchangetype: modify
2592de962bdSlukemreplace: drink
2602de962bdSlukemdrink: Iced Tea
2612de962bdSlukemdrink: Mad Dog 20/20
2622de962bdSlukem
2632de962bdSlukemdn: cn=ITD Staff,ou=Groups,dc=example,dc=com
2642de962bdSlukemchangetype: modify
2652de962bdSlukemdelete: uniquemember
2662de962bdSlukemuniquemember: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
2672de962bdSlukemuniquemember: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
2682de962bdSlukem-
2692de962bdSlukemadd: uniquemember
2702de962bdSlukemuniquemember: cn=Dorothy Stevens, ou=Alumni Association, ou=People, dc=example,dc=com
2712de962bdSlukemuniquemember: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
2722de962bdSlukem
2732de962bdSlukemdn: cn=All Staff,ou=Groups,dc=example,dc=com
2742de962bdSlukemchangetype: modify
2752de962bdSlukemdelete: description
2762de962bdSlukem
2772de962bdSlukemdn: cn=Gern Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
2782de962bdSlukemchangetype: add
2792de962bdSlukemobjectclass: OpenLDAPperson
2802de962bdSlukemcn: Gern Jensen
2812de962bdSlukemsn: Jensen
2822de962bdSlukemuid: gjensen
2832de962bdSlukemtitle: Chief Investigator, ITD
2842de962bdSlukempostaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
2852de962bdSlukemseealso: cn=All Staff, ou=Groups, dc=example,dc=com
2862de962bdSlukemdrink: Coffee
2872de962bdSlukemhomepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
2882de962bdSlukemdescription: Very odd
2892de962bdSlukemfacsimiletelephonenumber: +1 313 555 7557
2902de962bdSlukemtelephonenumber: +1 313 555 8343
2912de962bdSlukemmail: gjensen@mailgw.example.com
2922de962bdSlukemhomephone: +1 313 555 8844
2932de962bdSlukem
2942de962bdSlukemdn: ou=Retired, ou=People, dc=example,dc=com
2952de962bdSlukemchangetype: add
2962de962bdSlukemobjectclass: organizationalUnit
2972de962bdSlukemou: Retired
2982de962bdSlukem
2992de962bdSlukemdn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
3002de962bdSlukemchangetype: add
3012de962bdSlukemobjectclass: OpenLDAPperson
3022de962bdSlukemcn: Rosco P. Coltrane
3032de962bdSlukemsn: Coltrane
3042de962bdSlukemuid: rosco
3052de962bdSlukem
3062de962bdSlukemdn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
3072de962bdSlukemchangetype: modrdn
3082de962bdSlukemnewrdn: cn=Rosco P. Coltrane
3092de962bdSlukemdeleteoldrdn: 1
3102de962bdSlukemnewsuperior: ou=Retired, ou=People, dc=example,dc=com
3112de962bdSlukem
3122de962bdSlukemdn: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
3132de962bdSlukemchangetype: delete
3142de962bdSlukem
3154e6df137Slukemdn: dc=testdomain1,dc=example,dc=com
3164e6df137Slukemchangetype: modrdn
3174e6df137Slukemnewrdn: dc=itsdomain1
3184e6df137Slukemdeleteoldrdn: 1
3194e6df137Slukem
3204e6df137Slukemdn: dc=itsdomain1,dc=example,dc=com
3214e6df137Slukemchangetype: modify
3224e6df137Slukemreplace: description
3234e6df137Slukemdescription: Example, Inc. ITS test domain
3244e6df137Slukem
3254e6df137Slukemdn: dc=testdomain2,dc=example,dc=com
3264e6df137Slukemchangetype: modrdn
3274e6df137Slukemnewrdn: dc=itsdomain2
3284e6df137Slukemdeleteoldrdn: 1
3294e6df137Slukem
3302de962bdSlukemEOMODS
3312de962bdSlukem
3322de962bdSlukemRC=$?
3332de962bdSlukemif test $RC != 0 ; then
3342de962bdSlukem	echo "ldapmodify failed ($RC)!"
3352de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3362de962bdSlukem	exit $RC
3372de962bdSlukemfi
3382de962bdSlukem
3394e6df137Slukemecho "Waiting $SLEEP2 seconds for syncrepl to receive changes..."
3404e6df137Slukemsleep $SLEEP2
3414e6df137Slukem
3424e6df137Slukemecho "Performing modify alone on provider..."
343*e670fd5cSchristos$LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD > \
3444e6df137Slukem        $TESTOUT 2>&1 << EOMODS
3454e6df137Slukemdn: dc=itsdomain2,dc=example,dc=com
3464e6df137Slukemchangetype: modify
3474e6df137Slukemreplace: description
3484e6df137Slukemdescription: Example, Inc. itsdomain2 test domain
3494e6df137Slukem
3504e6df137SlukemEOMODS
3514e6df137Slukem
3524e6df137SlukemRC=$?
3534e6df137Slukemif test $RC != 0 ; then
3544e6df137Slukem        echo "ldapmodify failed ($RC)!"
3554e6df137Slukem        test $KILLSERVERS != no && kill -HUP $KILLPIDS
3564e6df137Slukem        exit $RC
3574e6df137Slukemfi
3584e6df137Slukem
3594e6df137Slukemecho "Waiting $SLEEP2 seconds for syncrepl to receive changes..."
3604e6df137Slukemsleep $SLEEP2
3612de962bdSlukem
362*e670fd5cSchristosecho "Using ldapsearch to read all the entries from the provider..."
363*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
364*e670fd5cSchristos	'(objectClass=*)' '*' entryCSN > $PROVIDEROUT 2>&1
3652de962bdSlukemRC=$?
3662de962bdSlukem
3672de962bdSlukemif test $RC != 0 ; then
368*e670fd5cSchristos	echo "ldapsearch failed at provider ($RC)!"
3692de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3702de962bdSlukem	exit $RC
3712de962bdSlukemfi
3722de962bdSlukem
373*e670fd5cSchristosecho "Using ldapsearch to read all the entries from the R1 consumer..."
374*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
3754e6df137Slukem	'(objectClass=*)' '*' entryCSN > $SERVER2OUT 2>&1
3762de962bdSlukemRC=$?
3772de962bdSlukem
3782de962bdSlukemif test $RC != 0 ; then
379*e670fd5cSchristos	echo "ldapsearch failed at R1 consumer ($RC)!"
3802de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3812de962bdSlukem	exit $RC
3822de962bdSlukemfi
3832de962bdSlukem
384*e670fd5cSchristosecho "Using ldapsearch to read all the entries from the R2 consumer..."
385*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI3 \
3864e6df137Slukem	'(objectClass=*)' '*' entryCSN > $SERVER3OUT 2>&1
3872de962bdSlukemRC=$?
3882de962bdSlukem
3892de962bdSlukemif test $RC != 0 ; then
390*e670fd5cSchristos	echo "ldapsearch failed at R2 consumer ($RC)!"
3912de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3922de962bdSlukem	exit $RC
3932de962bdSlukemfi
3942de962bdSlukem
395*e670fd5cSchristosecho "Using ldapsearch to read all the entries from the P1 consumer..."
396*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI4 \
3974e6df137Slukem	'(objectClass=*)' '*' entryCSN > $SERVER4OUT 2>&1
3982de962bdSlukemRC=$?
3992de962bdSlukem
4002de962bdSlukemif test $RC != 0 ; then
401*e670fd5cSchristos	echo "ldapsearch failed at P1 consumer ($RC)!"
4022de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4032de962bdSlukem	exit $RC
4042de962bdSlukemfi
4052de962bdSlukem
406*e670fd5cSchristosecho "Using ldapsearch to read all the entries from the P2 consumer..."
407*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI5 \
4084e6df137Slukem	'(objectClass=*)' '*' entryCSN > $SERVER5OUT 2>&1
4092de962bdSlukemRC=$?
4102de962bdSlukem
4112de962bdSlukemif test $RC != 0 ; then
412*e670fd5cSchristos	echo "ldapsearch failed at P2 consumer ($RC)!"
4132de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4142de962bdSlukem	exit $RC
4152de962bdSlukemfi
4162de962bdSlukem
417*e670fd5cSchristosecho "Using ldapsearch to read all the entries from the P3 consumer..."
418*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI6 \
4194e6df137Slukem	'(objectClass=*)' '*' entryCSN > $SERVER6OUT 2>&1
4202de962bdSlukemRC=$?
4212de962bdSlukem
4222de962bdSlukemif test $RC != 0 ; then
423*e670fd5cSchristos	echo "ldapsearch failed at P3 consumer ($RC)!"
4242de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4252de962bdSlukem	exit $RC
4262de962bdSlukemfi
4272de962bdSlukem
4282de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
4292de962bdSlukem
430*e670fd5cSchristosecho "Filtering provider ldapsearch results..."
431*e670fd5cSchristos$LDIFFILTER < $PROVIDEROUT > $PROVIDERFLT
432*e670fd5cSchristosecho "Filtering R1 consumer ldapsearch results..."
433ef2f90d3Sadam$LDIFFILTER < $SERVER2OUT > $SERVER2FLT
434*e670fd5cSchristosecho "Filtering R2 consumer ldapsearch results..."
435ef2f90d3Sadam$LDIFFILTER < $SERVER3OUT > $SERVER3FLT
436*e670fd5cSchristosecho "Filtering P1 consumer ldapsearch results..."
437ef2f90d3Sadam$LDIFFILTER < $SERVER4OUT > $SERVER4FLT
438*e670fd5cSchristosecho "Filtering P2 consumer ldapsearch results..."
439ef2f90d3Sadam$LDIFFILTER < $SERVER5OUT > $SERVER5FLT
440*e670fd5cSchristosecho "Filtering P3 consumer ldapsearch results..."
441ef2f90d3Sadam$LDIFFILTER < $SERVER6OUT > $SERVER6FLT
4422de962bdSlukem
443*e670fd5cSchristosecho "Comparing retrieved entries from provider and R1 consumer..."
444*e670fd5cSchristos$CMP $PROVIDERFLT $SERVER2FLT > $CMPOUT
4452de962bdSlukem
4462de962bdSlukemif test $? != 0 ; then
447*e670fd5cSchristos	echo "test failed - provider and R1 consumer databases differ"
4482de962bdSlukem	exit 1
4492de962bdSlukemfi
4502de962bdSlukem
451*e670fd5cSchristosecho "Comparing retrieved entries from provider and R2 consumer..."
452*e670fd5cSchristos$CMP $PROVIDERFLT $SERVER3FLT > $CMPOUT
4532de962bdSlukem
4542de962bdSlukemif test $? != 0 ; then
455*e670fd5cSchristos	echo "test failed - provider and R2 consumer databases differ"
4562de962bdSlukem	exit 1
4572de962bdSlukemfi
4582de962bdSlukem
459*e670fd5cSchristosecho "Comparing retrieved entries from provider and P1 consumer..."
460*e670fd5cSchristos$CMP $PROVIDERFLT $SERVER4FLT > $CMPOUT
4612de962bdSlukem
4622de962bdSlukemif test $? != 0 ; then
463*e670fd5cSchristos	echo "test failed - provider and P1 consumer databases differ"
4642de962bdSlukem	exit 1
4652de962bdSlukemfi
4662de962bdSlukem
467*e670fd5cSchristosecho "Comparing retrieved entries from provider and P2 consumer..."
468*e670fd5cSchristos$CMP $PROVIDERFLT $SERVER5FLT > $CMPOUT
4692de962bdSlukem
4702de962bdSlukemif test $? != 0 ; then
471*e670fd5cSchristos	echo "test failed - provider and P2 consumer databases differ"
4722de962bdSlukem	exit 1
4732de962bdSlukemfi
4742de962bdSlukem
475*e670fd5cSchristosecho "Comparing retrieved entries from provider and P3 consumer..."
476*e670fd5cSchristos$CMP $PROVIDERFLT $SERVER6FLT > $CMPOUT
4772de962bdSlukem
4782de962bdSlukemif test $? != 0 ; then
479*e670fd5cSchristos	echo "test failed - provider and P3 consumer databases differ"
4802de962bdSlukem	exit 1
4812de962bdSlukemfi
4822de962bdSlukem
4832de962bdSlukemecho ">>>>> Test succeeded"
4842de962bdSlukem
4852de962bdSlukemtest $KILLSERVERS != no && wait
4862de962bdSlukem
4872de962bdSlukemexit 0
488