Home | History | Annotate | Line # | Download | only in scripts
test018-syncreplication-persist revision 1.1.1.1.2.2
      1  1.1.1.1.2.2  yamt #! /bin/sh
      2  1.1.1.1.2.2  yamt # $OpenLDAP: pkg/ldap/tests/scripts/test018-syncreplication-persist,v 1.38.2.3 2008/02/11 23:26:51 kurt Exp $
      3  1.1.1.1.2.2  yamt ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4  1.1.1.1.2.2  yamt ##
      5  1.1.1.1.2.2  yamt ## Copyright 1998-2008 The OpenLDAP Foundation.
      6  1.1.1.1.2.2  yamt ## All rights reserved.
      7  1.1.1.1.2.2  yamt ##
      8  1.1.1.1.2.2  yamt ## Redistribution and use in source and binary forms, with or without
      9  1.1.1.1.2.2  yamt ## modification, are permitted only as authorized by the OpenLDAP
     10  1.1.1.1.2.2  yamt ## Public License.
     11  1.1.1.1.2.2  yamt ##
     12  1.1.1.1.2.2  yamt ## A copy of this license is available in the file LICENSE in the
     13  1.1.1.1.2.2  yamt ## top-level directory of the distribution or, alternatively, at
     14  1.1.1.1.2.2  yamt ## <http://www.OpenLDAP.org/license.html>.
     15  1.1.1.1.2.2  yamt 
     16  1.1.1.1.2.2  yamt if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" ; then
     17  1.1.1.1.2.2  yamt 	echo "Test does not support $BACKEND"
     18  1.1.1.1.2.2  yamt 	exit 0
     19  1.1.1.1.2.2  yamt fi
     20  1.1.1.1.2.2  yamt 
     21  1.1.1.1.2.2  yamt echo "running defines.sh"
     22  1.1.1.1.2.2  yamt . $SRCDIR/scripts/defines.sh
     23  1.1.1.1.2.2  yamt 
     24  1.1.1.1.2.2  yamt if test $SYNCPROV = syncprovno; then 
     25  1.1.1.1.2.2  yamt 	echo "Syncrepl provider overlay not available, test skipped"
     26  1.1.1.1.2.2  yamt 	exit 0
     27  1.1.1.1.2.2  yamt fi 
     28  1.1.1.1.2.2  yamt 
     29  1.1.1.1.2.2  yamt mkdir -p $TESTDIR $DBDIR1 $DBDIR4
     30  1.1.1.1.2.2  yamt 
     31  1.1.1.1.2.2  yamt #
     32  1.1.1.1.2.2  yamt # Test replication:
     33  1.1.1.1.2.2  yamt # - start producer
     34  1.1.1.1.2.2  yamt # - start consumer
     35  1.1.1.1.2.2  yamt # - populate over ldap
     36  1.1.1.1.2.2  yamt # - perform some modifies and deleted
     37  1.1.1.1.2.2  yamt # - attempt to modify the consumer (referral or chain)
     38  1.1.1.1.2.2  yamt # - retrieve database over ldap and compare against expected results
     39  1.1.1.1.2.2  yamt #
     40  1.1.1.1.2.2  yamt 
     41  1.1.1.1.2.2  yamt echo "Starting producer slapd on TCP/IP port $PORT1..."
     42  1.1.1.1.2.2  yamt . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $CONF1
     43  1.1.1.1.2.2  yamt $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
     44  1.1.1.1.2.2  yamt PID=$!
     45  1.1.1.1.2.2  yamt if test $WAIT != 0 ; then
     46  1.1.1.1.2.2  yamt     echo PID $PID
     47  1.1.1.1.2.2  yamt     read foo
     48  1.1.1.1.2.2  yamt fi
     49  1.1.1.1.2.2  yamt KILLPIDS="$PID"
     50  1.1.1.1.2.2  yamt 
     51  1.1.1.1.2.2  yamt sleep 1
     52  1.1.1.1.2.2  yamt 
     53  1.1.1.1.2.2  yamt echo "Using ldapsearch to check that producer slapd is running..."
     54  1.1.1.1.2.2  yamt for i in 0 1 2 3 4 5; do
     55  1.1.1.1.2.2  yamt 	$LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
     56  1.1.1.1.2.2  yamt 		'objectclass=*' > /dev/null 2>&1
     57  1.1.1.1.2.2  yamt 	RC=$?
     58  1.1.1.1.2.2  yamt 	if test $RC = 0 ; then
     59  1.1.1.1.2.2  yamt 		break
     60  1.1.1.1.2.2  yamt 	fi
     61  1.1.1.1.2.2  yamt 	echo "Waiting 5 seconds for slapd to start..."
     62  1.1.1.1.2.2  yamt 	sleep 5
     63  1.1.1.1.2.2  yamt done
     64  1.1.1.1.2.2  yamt 
     65  1.1.1.1.2.2  yamt if test $RC != 0 ; then
     66  1.1.1.1.2.2  yamt 	echo "ldapsearch failed ($RC)!"
     67  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     68  1.1.1.1.2.2  yamt 	exit $RC
     69  1.1.1.1.2.2  yamt fi
     70  1.1.1.1.2.2  yamt 
     71  1.1.1.1.2.2  yamt echo "Using ldapadd to create the context prefix entry in the producer..."
     72  1.1.1.1.2.2  yamt $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \
     73  1.1.1.1.2.2  yamt 	$LDIFORDEREDCP > /dev/null 2>&1
     74  1.1.1.1.2.2  yamt RC=$?
     75  1.1.1.1.2.2  yamt if test $RC != 0 ; then
     76  1.1.1.1.2.2  yamt 	echo "ldapadd failed ($RC)!"
     77  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     78  1.1.1.1.2.2  yamt 	exit $RC
     79  1.1.1.1.2.2  yamt fi
     80  1.1.1.1.2.2  yamt 
     81  1.1.1.1.2.2  yamt echo "Starting consumer slapd on TCP/IP port $PORT4..."
     82  1.1.1.1.2.2  yamt . $CONFFILTER $BACKEND $MONITORDB < $P1SRSLAVECONF > $CONF4
     83  1.1.1.1.2.2  yamt $SLAPD -f $CONF4 -h $URI4 -d $LVL $TIMING > $LOG4 2>&1 &
     84  1.1.1.1.2.2  yamt SLAVEPID=$!
     85  1.1.1.1.2.2  yamt if test $WAIT != 0 ; then
     86  1.1.1.1.2.2  yamt     echo SLAVEPID $SLAVEPID
     87  1.1.1.1.2.2  yamt     read foo
     88  1.1.1.1.2.2  yamt fi
     89  1.1.1.1.2.2  yamt KILLPIDS="$KILLPIDS $SLAVEPID"
     90  1.1.1.1.2.2  yamt 
     91  1.1.1.1.2.2  yamt sleep 1
     92  1.1.1.1.2.2  yamt 
     93  1.1.1.1.2.2  yamt echo "Using ldapsearch to check that consumer slapd is running..."
     94  1.1.1.1.2.2  yamt for i in 0 1 2 3 4 5; do
     95  1.1.1.1.2.2  yamt 	$LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT4 \
     96  1.1.1.1.2.2  yamt 		'objectclass=*' > /dev/null 2>&1
     97  1.1.1.1.2.2  yamt 	RC=$?
     98  1.1.1.1.2.2  yamt 	if test $RC = 0 ; then
     99  1.1.1.1.2.2  yamt 		break
    100  1.1.1.1.2.2  yamt 	fi
    101  1.1.1.1.2.2  yamt 	echo "Waiting 5 seconds for slapd to start..."
    102  1.1.1.1.2.2  yamt 	sleep 5
    103  1.1.1.1.2.2  yamt done
    104  1.1.1.1.2.2  yamt 
    105  1.1.1.1.2.2  yamt if test $RC != 0 ; then
    106  1.1.1.1.2.2  yamt 	echo "ldapsearch failed ($RC)!"
    107  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    108  1.1.1.1.2.2  yamt 	exit $RC
    109  1.1.1.1.2.2  yamt fi
    110  1.1.1.1.2.2  yamt 
    111  1.1.1.1.2.2  yamt echo "Using ldapadd to populate the producer directory..."
    112  1.1.1.1.2.2  yamt $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \
    113  1.1.1.1.2.2  yamt 	$LDIFORDEREDNOCP > /dev/null 2>&1
    114  1.1.1.1.2.2  yamt RC=$?
    115  1.1.1.1.2.2  yamt if test $RC != 0 ; then
    116  1.1.1.1.2.2  yamt 	echo "ldapadd failed ($RC)!"
    117  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    118  1.1.1.1.2.2  yamt 	exit $RC
    119  1.1.1.1.2.2  yamt fi
    120  1.1.1.1.2.2  yamt 
    121  1.1.1.1.2.2  yamt echo "Waiting 15 seconds for syncrepl to receive changes..."
    122  1.1.1.1.2.2  yamt sleep 15
    123  1.1.1.1.2.2  yamt 
    124  1.1.1.1.2.2  yamt echo "Stopping the provider, sleeping 10 seconds and restarting it..."
    125  1.1.1.1.2.2  yamt kill -HUP "$PID"
    126  1.1.1.1.2.2  yamt wait $PID
    127  1.1.1.1.2.2  yamt sleep 10
    128  1.1.1.1.2.2  yamt echo "RESTART" >> $LOG1
    129  1.1.1.1.2.2  yamt $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING >> $LOG1 2>&1 &
    130  1.1.1.1.2.2  yamt PID=$!
    131  1.1.1.1.2.2  yamt if test $WAIT != 0 ; then
    132  1.1.1.1.2.2  yamt     echo PID $PID
    133  1.1.1.1.2.2  yamt     read foo
    134  1.1.1.1.2.2  yamt fi
    135  1.1.1.1.2.2  yamt KILLPIDS="$PID $SLAVEPID"
    136  1.1.1.1.2.2  yamt 
    137  1.1.1.1.2.2  yamt sleep 1
    138  1.1.1.1.2.2  yamt 
    139  1.1.1.1.2.2  yamt echo "Using ldapsearch to check that producer slapd is running..."
    140  1.1.1.1.2.2  yamt for i in 0 1 2 3 4 5; do
    141  1.1.1.1.2.2  yamt 	$LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
    142  1.1.1.1.2.2  yamt 		'objectclass=*' > /dev/null 2>&1
    143  1.1.1.1.2.2  yamt 	RC=$?
    144  1.1.1.1.2.2  yamt 	if test $RC = 0 ; then
    145  1.1.1.1.2.2  yamt 		break
    146  1.1.1.1.2.2  yamt 	fi
    147  1.1.1.1.2.2  yamt 	echo "Waiting 5 seconds for slapd to start..."
    148  1.1.1.1.2.2  yamt 	sleep 5
    149  1.1.1.1.2.2  yamt done
    150  1.1.1.1.2.2  yamt 
    151  1.1.1.1.2.2  yamt if test $RC != 0 ; then
    152  1.1.1.1.2.2  yamt 	echo "ldapsearch failed ($RC)!"
    153  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    154  1.1.1.1.2.2  yamt 	exit $RC
    155  1.1.1.1.2.2  yamt fi
    156  1.1.1.1.2.2  yamt 
    157  1.1.1.1.2.2  yamt echo "Using ldapmodify to modify producer directory..."
    158  1.1.1.1.2.2  yamt 
    159  1.1.1.1.2.2  yamt #
    160  1.1.1.1.2.2  yamt # Do some modifications
    161  1.1.1.1.2.2  yamt #
    162  1.1.1.1.2.2  yamt 
    163  1.1.1.1.2.2  yamt $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
    164  1.1.1.1.2.2  yamt 	$TESTOUT 2>&1 << EOMODS
    165  1.1.1.1.2.2  yamt dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
    166  1.1.1.1.2.2  yamt changetype: modify
    167  1.1.1.1.2.2  yamt add: drink
    168  1.1.1.1.2.2  yamt drink: Orange Juice
    169  1.1.1.1.2.2  yamt -
    170  1.1.1.1.2.2  yamt delete: sn
    171  1.1.1.1.2.2  yamt sn: Jones
    172  1.1.1.1.2.2  yamt -
    173  1.1.1.1.2.2  yamt add: sn
    174  1.1.1.1.2.2  yamt sn: Jones
    175  1.1.1.1.2.2  yamt 
    176  1.1.1.1.2.2  yamt dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
    177  1.1.1.1.2.2  yamt changetype: modify
    178  1.1.1.1.2.2  yamt replace: drink
    179  1.1.1.1.2.2  yamt drink: Iced Tea
    180  1.1.1.1.2.2  yamt 
    181  1.1.1.1.2.2  yamt dn: cn=ITD Staff,ou=Groups,dc=example,dc=com
    182  1.1.1.1.2.2  yamt changetype: modify
    183  1.1.1.1.2.2  yamt delete: uniquemember
    184  1.1.1.1.2.2  yamt uniquemember: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
    185  1.1.1.1.2.2  yamt uniquemember: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
    186  1.1.1.1.2.2  yamt -
    187  1.1.1.1.2.2  yamt add: uniquemember
    188  1.1.1.1.2.2  yamt uniquemember: cn=Dorothy Stevens, ou=Alumni Association, ou=People, dc=example,dc=com
    189  1.1.1.1.2.2  yamt uniquemember: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
    190  1.1.1.1.2.2  yamt 
    191  1.1.1.1.2.2  yamt dn: cn=All Staff,ou=Groups,dc=example,dc=com
    192  1.1.1.1.2.2  yamt changetype: modify
    193  1.1.1.1.2.2  yamt delete: description
    194  1.1.1.1.2.2  yamt 
    195  1.1.1.1.2.2  yamt dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
    196  1.1.1.1.2.2  yamt changetype: add
    197  1.1.1.1.2.2  yamt objectclass: OpenLDAPperson
    198  1.1.1.1.2.2  yamt cn: Gern Jensen
    199  1.1.1.1.2.2  yamt sn: Jensen
    200  1.1.1.1.2.2  yamt uid: gjensen
    201  1.1.1.1.2.2  yamt title: Chief Investigator, ITD
    202  1.1.1.1.2.2  yamt postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
    203  1.1.1.1.2.2  yamt seealso: cn=All Staff, ou=Groups, dc=example,dc=com
    204  1.1.1.1.2.2  yamt drink: Coffee
    205  1.1.1.1.2.2  yamt homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
    206  1.1.1.1.2.2  yamt description: Very odd
    207  1.1.1.1.2.2  yamt facsimiletelephonenumber: +1 313 555 7557
    208  1.1.1.1.2.2  yamt telephonenumber: +1 313 555 8343
    209  1.1.1.1.2.2  yamt mail: gjensen@mailgw.example.com
    210  1.1.1.1.2.2  yamt homephone: +1 313 555 8844
    211  1.1.1.1.2.2  yamt 
    212  1.1.1.1.2.2  yamt dn: ou=Retired, ou=People, dc=example,dc=com
    213  1.1.1.1.2.2  yamt changetype: add
    214  1.1.1.1.2.2  yamt objectclass: organizationalUnit
    215  1.1.1.1.2.2  yamt ou: Retired
    216  1.1.1.1.2.2  yamt 
    217  1.1.1.1.2.2  yamt dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
    218  1.1.1.1.2.2  yamt changetype: add
    219  1.1.1.1.2.2  yamt objectclass: OpenLDAPperson
    220  1.1.1.1.2.2  yamt cn: Rosco P. Coltrane
    221  1.1.1.1.2.2  yamt sn: Coltrane
    222  1.1.1.1.2.2  yamt uid: rosco
    223  1.1.1.1.2.2  yamt description: Fat tycoon
    224  1.1.1.1.2.2  yamt 
    225  1.1.1.1.2.2  yamt dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
    226  1.1.1.1.2.2  yamt changetype: modrdn
    227  1.1.1.1.2.2  yamt newrdn: cn=Rosco P. Coltrane
    228  1.1.1.1.2.2  yamt deleteoldrdn: 1
    229  1.1.1.1.2.2  yamt newsuperior: ou=Retired, ou=People, dc=example,dc=com
    230  1.1.1.1.2.2  yamt 
    231  1.1.1.1.2.2  yamt dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
    232  1.1.1.1.2.2  yamt changetype: delete
    233  1.1.1.1.2.2  yamt 
    234  1.1.1.1.2.2  yamt EOMODS
    235  1.1.1.1.2.2  yamt 
    236  1.1.1.1.2.2  yamt RC=$?
    237  1.1.1.1.2.2  yamt if test $RC != 0 ; then
    238  1.1.1.1.2.2  yamt 	echo "ldapmodify failed ($RC)!"
    239  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    240  1.1.1.1.2.2  yamt 	exit $RC
    241  1.1.1.1.2.2  yamt fi
    242  1.1.1.1.2.2  yamt 
    243  1.1.1.1.2.2  yamt echo "Using ldappasswd to change some passwords..."
    244  1.1.1.1.2.2  yamt $LDAPPASSWD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD \
    245  1.1.1.1.2.2  yamt 	'cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com' \
    246  1.1.1.1.2.2  yamt 	> $TESTOUT 2>&1
    247  1.1.1.1.2.2  yamt RC=$?
    248  1.1.1.1.2.2  yamt if test $RC != 0 ; then
    249  1.1.1.1.2.2  yamt 	echo "ldapmodify failed ($RC)!"
    250  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    251  1.1.1.1.2.2  yamt 	exit $RC
    252  1.1.1.1.2.2  yamt fi
    253  1.1.1.1.2.2  yamt 
    254  1.1.1.1.2.2  yamt echo "Waiting 15 seconds for syncrepl to receive changes..."
    255  1.1.1.1.2.2  yamt sleep 15
    256  1.1.1.1.2.2  yamt 
    257  1.1.1.1.2.2  yamt echo "Stopping consumer to test recovery..."
    258  1.1.1.1.2.2  yamt kill -HUP $SLAVEPID
    259  1.1.1.1.2.2  yamt wait $SLAVEPID
    260  1.1.1.1.2.2  yamt 
    261  1.1.1.1.2.2  yamt echo "Modifying more entries on the producer..."
    262  1.1.1.1.2.2  yamt $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD >> \
    263  1.1.1.1.2.2  yamt 	$TESTOUT 2>&1 << EOMODS
    264  1.1.1.1.2.2  yamt dn: cn=Rosco P. Coltrane, ou=Retired, ou=People, dc=example,dc=com
    265  1.1.1.1.2.2  yamt changetype: delete
    266  1.1.1.1.2.2  yamt 
    267  1.1.1.1.2.2  yamt dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
    268  1.1.1.1.2.2  yamt changetype: modify
    269  1.1.1.1.2.2  yamt add: drink
    270  1.1.1.1.2.2  yamt drink: Mad Dog 20/20
    271  1.1.1.1.2.2  yamt 
    272  1.1.1.1.2.2  yamt dn: cn=Rosco P. Coltrane, ou=Retired, ou=People, dc=example,dc=com
    273  1.1.1.1.2.2  yamt changetype: add
    274  1.1.1.1.2.2  yamt objectclass: OpenLDAPperson
    275  1.1.1.1.2.2  yamt sn: Coltrane
    276  1.1.1.1.2.2  yamt uid: rosco
    277  1.1.1.1.2.2  yamt cn: Rosco P. Coltrane
    278  1.1.1.1.2.2  yamt 
    279  1.1.1.1.2.2  yamt EOMODS
    280  1.1.1.1.2.2  yamt 
    281  1.1.1.1.2.2  yamt echo "Restarting consumer..."
    282  1.1.1.1.2.2  yamt echo "RESTART" >> $LOG4
    283  1.1.1.1.2.2  yamt $SLAPD -f $CONF4 -h $URI4 -d $LVL $TIMING >> $LOG4 2>&1 &
    284  1.1.1.1.2.2  yamt SLAVEPID=$!
    285  1.1.1.1.2.2  yamt if test $WAIT != 0 ; then
    286  1.1.1.1.2.2  yamt     echo SLAVEPID $SLAVEPID
    287  1.1.1.1.2.2  yamt     read foo
    288  1.1.1.1.2.2  yamt fi
    289  1.1.1.1.2.2  yamt KILLPIDS="$PID $SLAVEPID"
    290  1.1.1.1.2.2  yamt 
    291  1.1.1.1.2.2  yamt echo "Waiting 25 seconds for syncrepl to receive changes..."
    292  1.1.1.1.2.2  yamt sleep 25
    293  1.1.1.1.2.2  yamt 
    294  1.1.1.1.2.2  yamt if test ! $BACKLDAP = "ldapno" ; then
    295  1.1.1.1.2.2  yamt 	echo "Try updating the consumer slapd..."
    296  1.1.1.1.2.2  yamt 	$LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT4 -w $PASSWD > \
    297  1.1.1.1.2.2  yamt 		$TESTOUT 2>&1 << EOMODS
    298  1.1.1.1.2.2  yamt dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com
    299  1.1.1.1.2.2  yamt changetype: modify
    300  1.1.1.1.2.2  yamt add: description
    301  1.1.1.1.2.2  yamt description: This write must fail because directed to a shadow context,
    302  1.1.1.1.2.2  yamt description: unless the chain overlay is configured appropriately ;)
    303  1.1.1.1.2.2  yamt 
    304  1.1.1.1.2.2  yamt EOMODS
    305  1.1.1.1.2.2  yamt 
    306  1.1.1.1.2.2  yamt 	RC=$?
    307  1.1.1.1.2.2  yamt 	if test $RC != 0 ; then
    308  1.1.1.1.2.2  yamt 		echo "ldapmodify failed ($RC)!"
    309  1.1.1.1.2.2  yamt 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    310  1.1.1.1.2.2  yamt 		exit $RC
    311  1.1.1.1.2.2  yamt 	fi
    312  1.1.1.1.2.2  yamt 
    313  1.1.1.1.2.2  yamt 	# ITS#4964
    314  1.1.1.1.2.2  yamt 	echo "Trying to change some passwords on the consumer..."
    315  1.1.1.1.2.2  yamt 	$LDAPPASSWD -D "$MANAGERDN" -h $LOCALHOST -p $PORT4 -w $PASSWD \
    316  1.1.1.1.2.2  yamt 		'cn=Barbara Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com' \
    317  1.1.1.1.2.2  yamt 		> $TESTOUT 2>&1
    318  1.1.1.1.2.2  yamt 	RC=$?
    319  1.1.1.1.2.2  yamt 	if test $RC != 0 ; then
    320  1.1.1.1.2.2  yamt 		echo "ldapmodify failed ($RC)!"
    321  1.1.1.1.2.2  yamt 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    322  1.1.1.1.2.2  yamt 		exit $RC
    323  1.1.1.1.2.2  yamt 	fi
    324  1.1.1.1.2.2  yamt 
    325  1.1.1.1.2.2  yamt 	echo "Waiting 15 seconds for syncrepl to receive changes..."
    326  1.1.1.1.2.2  yamt 	sleep 15
    327  1.1.1.1.2.2  yamt fi
    328  1.1.1.1.2.2  yamt 
    329  1.1.1.1.2.2  yamt OPATTRS="entryUUID creatorsName createTimestamp modifiersName modifyTimestamp"
    330  1.1.1.1.2.2  yamt 
    331  1.1.1.1.2.2  yamt echo "Using ldapsearch to read all the entries from the producer..."
    332  1.1.1.1.2.2  yamt $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
    333  1.1.1.1.2.2  yamt 	'(objectclass=*)' '*' $OPATTRS > $MASTEROUT 2>&1
    334  1.1.1.1.2.2  yamt RC=$?
    335  1.1.1.1.2.2  yamt 
    336  1.1.1.1.2.2  yamt if test $RC != 0 ; then
    337  1.1.1.1.2.2  yamt 	echo "ldapsearch failed at producer ($RC)!"
    338  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    339  1.1.1.1.2.2  yamt 	exit $RC
    340  1.1.1.1.2.2  yamt fi
    341  1.1.1.1.2.2  yamt 
    342  1.1.1.1.2.2  yamt echo "Using ldapsearch to read all the entries from the consumer..."
    343  1.1.1.1.2.2  yamt $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT4 \
    344  1.1.1.1.2.2  yamt 	'(objectclass=*)' '*' $OPATTRS > $SLAVEOUT 2>&1
    345  1.1.1.1.2.2  yamt RC=$?
    346  1.1.1.1.2.2  yamt 
    347  1.1.1.1.2.2  yamt if test $RC != 0 ; then
    348  1.1.1.1.2.2  yamt 	echo "ldapsearch failed at consumer ($RC)!"
    349  1.1.1.1.2.2  yamt 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    350  1.1.1.1.2.2  yamt 	exit $RC
    351  1.1.1.1.2.2  yamt fi
    352  1.1.1.1.2.2  yamt 
    353  1.1.1.1.2.2  yamt test $KILLSERVERS != no && kill -HUP $KILLPIDS
    354  1.1.1.1.2.2  yamt 
    355  1.1.1.1.2.2  yamt echo "Filtering producer results..."
    356  1.1.1.1.2.2  yamt . $LDIFFILTER < $MASTEROUT > $MASTERFLT
    357  1.1.1.1.2.2  yamt echo "Filtering consumer results..."
    358  1.1.1.1.2.2  yamt . $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
    359  1.1.1.1.2.2  yamt 
    360  1.1.1.1.2.2  yamt echo "Comparing retrieved entries from producer and consumer..."
    361  1.1.1.1.2.2  yamt $CMP $MASTERFLT $SLAVEFLT > $CMPOUT
    362  1.1.1.1.2.2  yamt 
    363  1.1.1.1.2.2  yamt if test $? != 0 ; then
    364  1.1.1.1.2.2  yamt 	echo "test failed - producer and consumer databases differ"
    365  1.1.1.1.2.2  yamt 	exit 1
    366  1.1.1.1.2.2  yamt fi
    367  1.1.1.1.2.2  yamt 
    368  1.1.1.1.2.2  yamt echo ">>>>> Test succeeded"
    369  1.1.1.1.2.2  yamt 
    370  1.1.1.1.2.2  yamt test $KILLSERVERS != no && wait
    371  1.1.1.1.2.2  yamt 
    372  1.1.1.1.2.2  yamt exit 0
    373