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