test045-syncreplication-proxied revision 1.1.1.10 1 1.1 lukem #! /bin/sh
2 1.1.1.4 tron # $OpenLDAP$
3 1.1 lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 1.1 lukem ##
5 1.1.1.10 christos ## Copyright 1998-2024 The OpenLDAP Foundation.
6 1.1 lukem ## All rights reserved.
7 1.1 lukem ##
8 1.1 lukem ## Redistribution and use in source and binary forms, with or without
9 1.1 lukem ## modification, are permitted only as authorized by the OpenLDAP
10 1.1 lukem ## Public License.
11 1.1 lukem ##
12 1.1 lukem ## A copy of this license is available in the file LICENSE in the
13 1.1 lukem ## top-level directory of the distribution or, alternatively, at
14 1.1 lukem ## <http://www.OpenLDAP.org/license.html>.
15 1.1 lukem
16 1.1 lukem
17 1.1 lukem # test now handles known issues
18 1.1 lukem #if test x"$PROXYSYNC" = x ; then
19 1.1 lukem # echo "Test disabled; set PROXYSYNC=yes to enable"
20 1.1 lukem # exit 0
21 1.1 lukem #fi
22 1.1 lukem
23 1.1 lukem echo "running defines.sh"
24 1.1 lukem . $SRCDIR/scripts/defines.sh
25 1.1 lukem
26 1.1 lukem if test $BACKLDAP = ldapno; then
27 1.1 lukem echo "LDAP backend not available, test skipped"
28 1.1 lukem exit 0
29 1.1 lukem fi
30 1.1 lukem
31 1.1 lukem if test $SYNCPROV = syncprovno; then
32 1.1 lukem echo "Syncrepl provider overlay not available, test skipped"
33 1.1 lukem exit 0
34 1.1 lukem fi
35 1.1 lukem
36 1.1 lukem mkdir -p $TESTDIR $DBDIR1 $DBDIR2
37 1.1 lukem
38 1.1 lukem #
39 1.1 lukem # Test replication:
40 1.1.1.9 christos # - start provider
41 1.1.1.9 christos # - start consumer
42 1.1 lukem # - populate over ldap
43 1.1 lukem # - perform some modifies and deleted
44 1.1.1.9 christos # - attempt to modify the consumer (referral or chain)
45 1.1 lukem # - retrieve database over ldap and compare against expected results
46 1.1 lukem #
47 1.1 lukem
48 1.1.1.9 christos echo "Starting provider slapd on TCP/IP port $PORT1..."
49 1.1.1.9 christos . $CONFFILTER $BACKEND < $SRPROVIDERCONF > $CONF1
50 1.1.1.9 christos $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
51 1.1.1.9 christos PROVIDERPID=$!
52 1.1 lukem if test $WAIT != 0 ; then
53 1.1.1.9 christos echo PROVIDERPID $PROVIDERPID
54 1.1 lukem read foo
55 1.1 lukem fi
56 1.1.1.9 christos KILLPIDS="$PROVIDERPID"
57 1.1 lukem
58 1.1 lukem sleep 1
59 1.1 lukem
60 1.1.1.9 christos echo "Using ldapsearch to check that provider slapd is running..."
61 1.1 lukem for i in 0 1 2 3 4 5; do
62 1.1.1.9 christos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
63 1.1 lukem '(objectClass=*)' > /dev/null 2>&1
64 1.1 lukem RC=$?
65 1.1 lukem if test $RC = 0 ; then
66 1.1 lukem break
67 1.1 lukem fi
68 1.1 lukem echo "Waiting 5 seconds for slapd to start..."
69 1.1 lukem sleep 5
70 1.1 lukem done
71 1.1 lukem
72 1.1 lukem if test $RC != 0 ; then
73 1.1 lukem echo "ldapsearch failed ($RC)!"
74 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
75 1.1 lukem exit $RC
76 1.1 lukem fi
77 1.1 lukem
78 1.1.1.9 christos echo "Using ldapadd to create the context prefix entry in the provider..."
79 1.1.1.9 christos $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD < \
80 1.1 lukem $LDIFORDEREDCP > /dev/null 2>&1
81 1.1 lukem RC=$?
82 1.1 lukem if test $RC != 0 ; then
83 1.1 lukem echo "ldapadd failed ($RC)!"
84 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
85 1.1 lukem exit $RC
86 1.1 lukem fi
87 1.1 lukem
88 1.1.1.9 christos echo "Starting consumer slapd on TCP/IP port $PORT2..."
89 1.1.1.9 christos . $CONFFILTER $BACKEND < $RCONSUMERCONF > $CONF2
90 1.1.1.9 christos $SLAPD -f $CONF2 -h $URI2 -d $LVL > $LOG2 2>&1 &
91 1.1.1.9 christos CONSUMERPID=$!
92 1.1 lukem if test $WAIT != 0 ; then
93 1.1.1.9 christos echo CONSUMERPID $CONSUMERPID
94 1.1 lukem read foo
95 1.1 lukem fi
96 1.1.1.9 christos KILLPIDS="$PROVIDERPID $CONSUMERPID"
97 1.1 lukem
98 1.1 lukem sleep 1
99 1.1 lukem
100 1.1.1.9 christos echo "Using ldapsearch to check that consumer slapd is running..."
101 1.1 lukem for i in 0 1 2 3 4 5; do
102 1.1.1.9 christos $LDAPSEARCH -s base -b "$MONITOR" -H $URI2 \
103 1.1 lukem '(objectClass=*)' > /dev/null 2>&1
104 1.1 lukem RC=$?
105 1.1 lukem if test $RC = 0 ; then
106 1.1 lukem break
107 1.1 lukem fi
108 1.1 lukem echo "Waiting 5 seconds for slapd to start..."
109 1.1 lukem sleep 5
110 1.1 lukem done
111 1.1 lukem
112 1.1 lukem if test $RC != 0 ; then
113 1.1 lukem echo "ldapsearch failed ($RC)!"
114 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
115 1.1 lukem exit $RC
116 1.1 lukem fi
117 1.1 lukem
118 1.1 lukem echo "Starting proxy slapd on TCP/IP port $PORT3..."
119 1.1.1.9 christos . $CONFFILTER $BACKEND < $PLSRCONSUMERCONF > $CONF3
120 1.1.1.9 christos $SLAPD -f $CONF3 -h $URI3 -d $LVL > $LOG3 2>&1 &
121 1.1 lukem PROXYPID=$!
122 1.1 lukem if test $WAIT != 0 ; then
123 1.1 lukem echo PROXYPID $PROXYPID
124 1.1 lukem read foo
125 1.1 lukem fi
126 1.1.1.9 christos KILLPIDS="$PROVIDERPID $CONSUMERPID $PROXYPID"
127 1.1 lukem
128 1.1 lukem sleep 1
129 1.1 lukem
130 1.1 lukem echo "Using ldapsearch to check that proxy slapd is running..."
131 1.1 lukem for i in 0 1 2 3 4 5; do
132 1.1.1.9 christos $LDAPSEARCH -s base -b "$MONITOR" -H $URI3 \
133 1.1 lukem '(objectClass=*)' > /dev/null 2>&1
134 1.1 lukem RC=$?
135 1.1 lukem if test $RC = 0 || test $RC = 53 ; then
136 1.1 lukem break
137 1.1 lukem fi
138 1.1 lukem echo "Waiting 5 seconds for slapd to start..."
139 1.1 lukem sleep 5
140 1.1 lukem done
141 1.1 lukem
142 1.1 lukem case $RC in
143 1.1 lukem 0 )
144 1.1 lukem echo "ldapsearch should have failed ($RC)!"
145 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
146 1.1.1.10 christos exit 1
147 1.1 lukem ;;
148 1.1 lukem 53)
149 1.1 lukem ;;
150 1.1 lukem *)
151 1.1 lukem echo "ldapsearch failed ($RC)!"
152 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
153 1.1 lukem exit $RC
154 1.1 lukem ;;
155 1.1 lukem esac
156 1.1 lukem
157 1.1 lukem CHECK=1
158 1.1.1.9 christos echo "$CHECK > Using ldapadd to populate the provider directory..."
159 1.1.1.9 christos $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD < \
160 1.1 lukem $LDIFORDEREDNOCP > /dev/null 2>&1
161 1.1 lukem RC=$?
162 1.1 lukem if test $RC != 0 ; then
163 1.1 lukem echo "ldapadd failed ($RC)!"
164 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
165 1.1 lukem exit $RC
166 1.1 lukem fi
167 1.1 lukem
168 1.1.1.9 christos # get provider contextCSN
169 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
170 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${PROVIDEROUT}.$CHECK" 2>&1
171 1.1 lukem RC=$?
172 1.1 lukem if test $RC != 0 ; then
173 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
174 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
175 1.1 lukem exit $RC
176 1.1 lukem fi
177 1.1 lukem
178 1.1.1.9 christos # check consumer contextCSN
179 1.1 lukem sleep 1
180 1.1 lukem for i in 1 2 3; do
181 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
182 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${CONSUMEROUT}.$CHECK" 2>&1
183 1.1 lukem RC=$?
184 1.1 lukem
185 1.1 lukem if test $RC != 0 ; then
186 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
187 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
188 1.1 lukem exit $RC
189 1.1 lukem fi
190 1.1 lukem
191 1.1.1.9 christos $CMP ${PROVIDEROUT}.$CHECK ${CONSUMEROUT}.$CHECK > $CMPOUT
192 1.1 lukem
193 1.1 lukem if test $? = 0 ; then
194 1.1 lukem break
195 1.1 lukem fi
196 1.1 lukem
197 1.1.1.2 lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
198 1.1.1.2 lukem sleep $SLEEP1
199 1.1 lukem done
200 1.1 lukem
201 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the provider..."
202 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
203 1.1.1.9 christos '(objectClass=*)' > "${PROVIDEROUT}.$CHECK" 2>&1
204 1.1 lukem RC=$?
205 1.1 lukem
206 1.1 lukem if test $RC != 0 ; then
207 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
208 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
209 1.1 lukem exit $RC
210 1.1 lukem fi
211 1.1 lukem
212 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the consumer..."
213 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
214 1.1.1.9 christos '(objectClass=*)' > "${CONSUMEROUT}.$CHECK" 2>&1
215 1.1 lukem RC=$?
216 1.1 lukem
217 1.1 lukem if test $RC != 0 ; then
218 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
219 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
220 1.1 lukem exit $RC
221 1.1 lukem fi
222 1.1 lukem
223 1.1.1.9 christos #echo "Filtering provider results..."
224 1.1.1.9 christos $LDIFFILTER < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
225 1.1.1.9 christos #echo "Filtering consumer results..."
226 1.1.1.9 christos $LDIFFILTER < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
227 1.1 lukem
228 1.1.1.9 christos echo "$CHECK < Comparing retrieved entries from provider and consumer..."
229 1.1.1.9 christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
230 1.1 lukem
231 1.1 lukem if test $? != 0 ; then
232 1.1.1.9 christos echo "test failed - provider and consumer databases differ"
233 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
234 1.1 lukem exit 1
235 1.1 lukem fi
236 1.1 lukem
237 1.1 lukem CHECK=`expr $CHECK + 1`
238 1.1.1.2 lukem echo "$CHECK > Stopping the provider, sleeping $SLEEP2 seconds and restarting it..."
239 1.1.1.9 christos kill -HUP "$PROVIDERPID"
240 1.1.1.9 christos wait $PROVIDERPID
241 1.1.1.2 lukem sleep $SLEEP2
242 1.1 lukem
243 1.1 lukem echo "======================= RESTART =======================" >> $LOG1
244 1.1.1.9 christos $SLAPD -f $CONF1 -h $URI1 -d $LVL >> $LOG1 2>&1 &
245 1.1.1.9 christos PROVIDERPID=$!
246 1.1 lukem if test $WAIT != 0 ; then
247 1.1.1.9 christos echo PROVIDERPID $PROVIDERPID
248 1.1 lukem read foo
249 1.1 lukem fi
250 1.1.1.9 christos KILLPIDS="$PROVIDERPID $CONSUMERPID $PROXYPID"
251 1.1 lukem
252 1.1 lukem sleep 1
253 1.1 lukem
254 1.1.1.9 christos echo "Using ldapsearch to check that provider slapd is running..."
255 1.1 lukem for i in 0 1 2 3 4 5; do
256 1.1.1.9 christos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
257 1.1 lukem '(objectClass=*)' > /dev/null 2>&1
258 1.1 lukem RC=$?
259 1.1 lukem if test $RC = 0 ; then
260 1.1 lukem break
261 1.1 lukem fi
262 1.1 lukem echo "Waiting 5 seconds for slapd to start..."
263 1.1 lukem sleep 5
264 1.1 lukem done
265 1.1 lukem
266 1.1 lukem if test $RC != 0 ; then
267 1.1 lukem echo "ldapsearch failed ($RC)!"
268 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
269 1.1 lukem exit $RC
270 1.1 lukem fi
271 1.1 lukem
272 1.1.1.9 christos echo "Using ldapmodify to modify provider directory..."
273 1.1 lukem
274 1.1 lukem #
275 1.1 lukem # Do some modifications
276 1.1 lukem #
277 1.1 lukem
278 1.1.1.9 christos $LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD > \
279 1.1 lukem $TESTOUT 2>&1 << EOMODS
280 1.1 lukem dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
281 1.1 lukem changetype: modify
282 1.1 lukem add: drink
283 1.1 lukem drink: Orange Juice
284 1.1 lukem -
285 1.1 lukem delete: sn
286 1.1 lukem sn: Jones
287 1.1 lukem -
288 1.1 lukem add: sn
289 1.1 lukem sn: Jones
290 1.1 lukem
291 1.1 lukem dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
292 1.1 lukem changetype: modify
293 1.1 lukem replace: drink
294 1.1 lukem drink: Iced Tea
295 1.1 lukem
296 1.1 lukem dn: cn=ITD Staff,ou=Groups,dc=example,dc=com
297 1.1 lukem changetype: modify
298 1.1 lukem delete: uniquemember
299 1.1 lukem uniquemember: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
300 1.1 lukem uniquemember: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
301 1.1 lukem -
302 1.1 lukem add: uniquemember
303 1.1 lukem uniquemember: cn=Dorothy Stevens, ou=Alumni Association, ou=People, dc=example,dc=com
304 1.1 lukem uniquemember: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
305 1.1 lukem
306 1.1 lukem dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc
307 1.1 lukem =com
308 1.1 lukem changetype: modify
309 1.1 lukem delete: cn
310 1.1 lukem cn: Biiff Jensen
311 1.1 lukem
312 1.1 lukem dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
313 1.1 lukem changetype: add
314 1.1 lukem objectclass: OpenLDAPperson
315 1.1 lukem cn: Gern Jensen
316 1.1 lukem sn: Jensen
317 1.1 lukem uid: gjensen
318 1.1 lukem title: Chief Investigator, ITD
319 1.1 lukem postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
320 1.1 lukem seealso: cn=All Staff, ou=Groups, dc=example,dc=com
321 1.1 lukem drink: Coffee
322 1.1 lukem homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
323 1.1 lukem description: Very odd
324 1.1 lukem facsimiletelephonenumber: +1 313 555 7557
325 1.1 lukem telephonenumber: +1 313 555 8343
326 1.1 lukem mail: gjensen@mailgw.example.com
327 1.1 lukem homephone: +1 313 555 8844
328 1.1 lukem
329 1.1 lukem dn: ou=Retired, ou=People, dc=example,dc=com
330 1.1 lukem changetype: add
331 1.1 lukem objectclass: organizationalUnit
332 1.1 lukem ou: Retired
333 1.1 lukem
334 1.1 lukem dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
335 1.1 lukem changetype: add
336 1.1 lukem objectclass: OpenLDAPperson
337 1.1 lukem cn: Rosco P. Coltrane
338 1.1 lukem sn: Coltrane
339 1.1 lukem uid: rosco
340 1.1 lukem description: Fat tycoon
341 1.1 lukem
342 1.1 lukem dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
343 1.1 lukem changetype: modrdn
344 1.1 lukem newrdn: cn=Rosco P. Coltrane
345 1.1 lukem deleteoldrdn: 1
346 1.1 lukem newsuperior: ou=Retired, ou=People, dc=example,dc=com
347 1.1 lukem
348 1.1 lukem dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
349 1.1 lukem changetype: delete
350 1.1 lukem EOMODS
351 1.1 lukem
352 1.1 lukem RC=$?
353 1.1 lukem if test $RC != 0 ; then
354 1.1 lukem echo "ldapmodify failed ($RC)!"
355 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
356 1.1 lukem exit $RC
357 1.1 lukem fi
358 1.1 lukem
359 1.1.1.9 christos # get provider contextCSN
360 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
361 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${PROVIDEROUT}.$CHECK" 2>&1
362 1.1 lukem RC=$?
363 1.1 lukem if test $RC != 0 ; then
364 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
365 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
366 1.1 lukem exit $RC
367 1.1 lukem fi
368 1.1 lukem
369 1.1.1.9 christos # check consumer contextCSN
370 1.1 lukem for i in 1 2 3; do
371 1.1.1.2 lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
372 1.1.1.2 lukem sleep $SLEEP1
373 1.1 lukem
374 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
375 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${CONSUMEROUT}.$CHECK" 2>&1
376 1.1 lukem RC=$?
377 1.1 lukem
378 1.1 lukem if test $RC != 0 ; then
379 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
380 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
381 1.1 lukem exit $RC
382 1.1 lukem fi
383 1.1 lukem
384 1.1.1.9 christos $CMP ${PROVIDEROUT}.$CHECK ${CONSUMEROUT}.$CHECK > $CMPOUT
385 1.1 lukem
386 1.1 lukem if test $? = 0 ; then
387 1.1 lukem break
388 1.1 lukem fi
389 1.1 lukem done
390 1.1 lukem
391 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the provider..."
392 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
393 1.1.1.9 christos '(objectClass=*)' > "${PROVIDEROUT}.$CHECK" 2>&1
394 1.1 lukem RC=$?
395 1.1 lukem
396 1.1 lukem if test $RC != 0 ; then
397 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
398 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
399 1.1 lukem exit $RC
400 1.1 lukem fi
401 1.1 lukem
402 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the consumer..."
403 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
404 1.1.1.9 christos '(objectClass=*)' > "${CONSUMEROUT}.$CHECK" 2>&1
405 1.1 lukem RC=$?
406 1.1 lukem
407 1.1 lukem if test $RC != 0 ; then
408 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
409 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
410 1.1 lukem exit $RC
411 1.1 lukem fi
412 1.1 lukem
413 1.1.1.9 christos #echo "Filtering provider results..."
414 1.1.1.9 christos $LDIFFILTER < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
415 1.1.1.9 christos #echo "Filtering consumer results..."
416 1.1.1.9 christos $LDIFFILTER < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
417 1.1 lukem
418 1.1.1.9 christos echo "$CHECK < Comparing retrieved entries from provider and consumer..."
419 1.1.1.9 christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
420 1.1 lukem
421 1.1 lukem if test $? != 0 ; then
422 1.1.1.9 christos echo "test failed - provider and consumer databases differ"
423 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
424 1.1 lukem exit 1
425 1.1 lukem fi
426 1.1 lukem
427 1.1 lukem CHECK=`expr $CHECK + 1`
428 1.1 lukem echo "$CHECK > Stopping proxy to test recovery..."
429 1.1 lukem kill -HUP $PROXYPID
430 1.1 lukem wait $PROXYPID
431 1.1 lukem
432 1.1.1.9 christos echo "Modifying more entries on the provider..."
433 1.1.1.9 christos $LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD >> \
434 1.1 lukem $TESTOUT 2>&1 << EOMODS
435 1.1 lukem dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
436 1.1 lukem changetype: modify
437 1.1 lukem add: description
438 1.1 lukem description: proxy is down...
439 1.1 lukem
440 1.1 lukem dn: cn=James T. Kirk, ou=Retired, ou=People, dc=example,dc=com
441 1.1 lukem changetype: add
442 1.1 lukem objectclass: OpenLDAPperson
443 1.1 lukem sn: Kirk
444 1.1 lukem uid: jtk
445 1.1 lukem cn: James T. Kirk
446 1.1 lukem
447 1.1 lukem dn: cn=Tiberius J. Hooker, ou=Retired, ou=People, dc=example,dc=com
448 1.1 lukem changetype: add
449 1.1 lukem objectclass: OpenLDAPperson
450 1.1 lukem sn: Hooker
451 1.1 lukem uid: tjh
452 1.1 lukem cn: Tiberius J. Hooker
453 1.1 lukem
454 1.1 lukem EOMODS
455 1.1 lukem
456 1.1 lukem echo "Restarting proxy..."
457 1.1 lukem echo "======================= RESTART =======================" >> $LOG3
458 1.1.1.9 christos $SLAPD -f $CONF3 -h $URI3 -d $LVL >> $LOG3 2>&1 &
459 1.1 lukem PROXYPID=$!
460 1.1 lukem if test $WAIT != 0 ; then
461 1.1 lukem echo PROXYPID $PROXYPID
462 1.1 lukem read foo
463 1.1 lukem fi
464 1.1.1.9 christos KILLPIDS="$PROVIDERPID $CONSUMERPID $PROXYPID"
465 1.1 lukem
466 1.1.1.9 christos # get provider contextCSN
467 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
468 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${PROVIDEROUT}.$CHECK" 2>&1
469 1.1 lukem RC=$?
470 1.1 lukem if test $RC != 0 ; then
471 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
472 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
473 1.1 lukem exit $RC
474 1.1 lukem fi
475 1.1 lukem
476 1.1.1.9 christos # check consumer contextCSN
477 1.1 lukem for i in 1 2 3 4 5; do
478 1.1.1.2 lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
479 1.1.1.2 lukem sleep $SLEEP1
480 1.1 lukem
481 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
482 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${CONSUMEROUT}.$CHECK" 2>&1
483 1.1 lukem RC=$?
484 1.1 lukem
485 1.1 lukem if test $RC != 0 ; then
486 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
487 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
488 1.1 lukem exit $RC
489 1.1 lukem fi
490 1.1 lukem
491 1.1.1.9 christos $CMP ${PROVIDEROUT}.$CHECK ${CONSUMEROUT}.$CHECK > $CMPOUT
492 1.1 lukem
493 1.1 lukem if test $? = 0 ; then
494 1.1 lukem break
495 1.1 lukem fi
496 1.1 lukem done
497 1.1 lukem
498 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the provider..."
499 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
500 1.1.1.9 christos '(objectClass=*)' > "${PROVIDEROUT}.$CHECK" 2>&1
501 1.1 lukem RC=$?
502 1.1 lukem
503 1.1 lukem if test $RC != 0 ; then
504 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
505 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
506 1.1 lukem exit $RC
507 1.1 lukem fi
508 1.1 lukem
509 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the consumer..."
510 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
511 1.1.1.9 christos '(objectClass=*)' > "${CONSUMEROUT}.$CHECK" 2>&1
512 1.1 lukem RC=$?
513 1.1 lukem
514 1.1 lukem if test $RC != 0 ; then
515 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
516 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
517 1.1 lukem exit $RC
518 1.1 lukem fi
519 1.1 lukem
520 1.1.1.9 christos #echo "Filtering provider results..."
521 1.1.1.9 christos $LDIFFILTER < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
522 1.1.1.9 christos #echo "Filtering consumer results..."
523 1.1.1.9 christos $LDIFFILTER < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
524 1.1 lukem
525 1.1.1.9 christos echo "$CHECK < Comparing retrieved entries from provider and consumer..."
526 1.1.1.9 christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
527 1.1 lukem
528 1.1 lukem if test $? != 0 ; then
529 1.1.1.9 christos echo "test failed - provider and consumer databases differ"
530 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
531 1.1 lukem exit 1
532 1.1 lukem fi
533 1.1 lukem
534 1.1 lukem CHECK=`expr $CHECK + 1`
535 1.1.1.9 christos echo "$CHECK > Try updating the consumer slapd..."
536 1.1.1.9 christos $LDAPMODIFY -v -D "$MANAGERDN" -H $URI2 -w $PASSWD > \
537 1.1 lukem $TESTOUT 2>&1 << EOMODS
538 1.1 lukem dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com
539 1.1 lukem changetype: modify
540 1.1 lukem add: description
541 1.1 lukem description: This write must fail because directed to a shadow context,
542 1.1 lukem description: unless the chain overlay is configured appropriately ;)
543 1.1 lukem
544 1.1 lukem EOMODS
545 1.1 lukem
546 1.1 lukem RC=$?
547 1.1 lukem if test $RC != 0 ; then
548 1.1 lukem echo "ldapmodify failed ($RC)!"
549 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
550 1.1 lukem exit $RC
551 1.1 lukem fi
552 1.1 lukem
553 1.1.1.9 christos # get provider contextCSN
554 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
555 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${PROVIDEROUT}.$CHECK" 2>&1
556 1.1 lukem RC=$?
557 1.1 lukem if test $RC != 0 ; then
558 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
559 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
560 1.1 lukem exit $RC
561 1.1 lukem fi
562 1.1 lukem
563 1.1.1.9 christos # check consumer contextCSN
564 1.1 lukem sleep 1
565 1.1 lukem
566 1.1 lukem for i in 1 2 3; do
567 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
568 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${CONSUMEROUT}.$CHECK" 2>&1
569 1.1 lukem RC=$?
570 1.1 lukem
571 1.1 lukem if test $RC != 0 ; then
572 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
573 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
574 1.1 lukem exit $RC
575 1.1 lukem fi
576 1.1 lukem
577 1.1.1.9 christos $CMP ${PROVIDEROUT}.$CHECK ${CONSUMEROUT}.$CHECK > $CMPOUT
578 1.1 lukem
579 1.1 lukem if test $? = 0 ; then
580 1.1 lukem break
581 1.1 lukem fi
582 1.1 lukem
583 1.1.1.2 lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
584 1.1.1.2 lukem sleep $SLEEP1
585 1.1 lukem done
586 1.1 lukem
587 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the provider..."
588 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
589 1.1.1.9 christos '(objectClass=*)' > "${PROVIDEROUT}.$CHECK" 2>&1
590 1.1 lukem RC=$?
591 1.1 lukem
592 1.1 lukem if test $RC != 0 ; then
593 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
594 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
595 1.1 lukem exit $RC
596 1.1 lukem fi
597 1.1 lukem
598 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the consumer..."
599 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
600 1.1.1.9 christos '(objectClass=*)' > "${CONSUMEROUT}.$CHECK" 2>&1
601 1.1 lukem RC=$?
602 1.1 lukem
603 1.1 lukem if test $RC != 0 ; then
604 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
605 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
606 1.1 lukem exit $RC
607 1.1 lukem fi
608 1.1 lukem
609 1.1.1.9 christos #echo "Filtering provider results..."
610 1.1.1.9 christos $LDIFFILTER < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
611 1.1.1.9 christos #echo "Filtering consumer results..."
612 1.1.1.9 christos $LDIFFILTER < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
613 1.1 lukem
614 1.1.1.9 christos echo "$CHECK < Comparing retrieved entries from provider and consumer..."
615 1.1.1.9 christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
616 1.1 lukem
617 1.1 lukem if test $? != 0 ; then
618 1.1.1.9 christos echo "test failed - provider and consumer databases differ"
619 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
620 1.1 lukem exit 1
621 1.1 lukem fi
622 1.1 lukem
623 1.1 lukem CHECK=`expr $CHECK + 1`
624 1.1 lukem echo "$CHECK > Stopping consumer to test recovery..."
625 1.1.1.9 christos kill -HUP $CONSUMERPID
626 1.1.1.9 christos wait $CONSUMERPID
627 1.1 lukem
628 1.1.1.9 christos echo "Modifying more entries on the provider..."
629 1.1.1.9 christos $LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD >> \
630 1.1 lukem $TESTOUT 2>&1 << EOMODS
631 1.1 lukem dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
632 1.1 lukem changetype: modify
633 1.1 lukem add: drink
634 1.1 lukem drink: Mad Dog 20/20
635 1.1 lukem
636 1.1 lukem EOMODS
637 1.1 lukem
638 1.1.1.2 lukem echo "Waiting $SLEEP2 seconds for syncrepl to retry..."
639 1.1.1.2 lukem sleep $SLEEP2
640 1.1 lukem
641 1.1 lukem echo "Restarting consumer..."
642 1.1 lukem echo "======================= RESTART =======================" >> $LOG2
643 1.1.1.9 christos $SLAPD -f $CONF2 -h $URI2 -d $LVL >> $LOG2 2>&1 &
644 1.1.1.9 christos CONSUMERPID=$!
645 1.1 lukem if test $WAIT != 0 ; then
646 1.1.1.9 christos echo CONSUMERPID $CONSUMERPID
647 1.1 lukem read foo
648 1.1 lukem fi
649 1.1.1.9 christos KILLPIDS="$PROVIDERPID $CONSUMERPID $PROXYPID"
650 1.1 lukem
651 1.1.1.9 christos # get provider contextCSN
652 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
653 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${PROVIDEROUT}.$CHECK" 2>&1
654 1.1 lukem RC=$?
655 1.1 lukem if test $RC != 0 ; then
656 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
657 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
658 1.1 lukem exit $RC
659 1.1 lukem fi
660 1.1 lukem
661 1.1.1.9 christos # check consumer contextCSN
662 1.1 lukem
663 1.1 lukem for i in 1 2 3 4 5; do
664 1.1.1.2 lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
665 1.1.1.2 lukem sleep $SLEEP1
666 1.1 lukem
667 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
668 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${CONSUMEROUT}.$CHECK" 2>&1
669 1.1 lukem RC=$?
670 1.1 lukem
671 1.1 lukem if test $RC != 0 ; then
672 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
673 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
674 1.1 lukem exit $RC
675 1.1 lukem fi
676 1.1 lukem
677 1.1.1.9 christos $CMP ${PROVIDEROUT}.$CHECK ${CONSUMEROUT}.$CHECK > $CMPOUT
678 1.1 lukem
679 1.1 lukem if test $? = 0 ; then
680 1.1 lukem break
681 1.1 lukem fi
682 1.1 lukem done
683 1.1 lukem
684 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the provider..."
685 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
686 1.1.1.9 christos '(objectClass=*)' > "${PROVIDEROUT}.$CHECK" 2>&1
687 1.1 lukem RC=$?
688 1.1 lukem
689 1.1 lukem if test $RC != 0 ; then
690 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
691 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
692 1.1 lukem exit $RC
693 1.1 lukem fi
694 1.1 lukem
695 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the consumer..."
696 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
697 1.1.1.9 christos '(objectClass=*)' > "${CONSUMEROUT}.$CHECK" 2>&1
698 1.1 lukem RC=$?
699 1.1 lukem
700 1.1 lukem if test $RC != 0 ; then
701 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
702 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
703 1.1 lukem exit $RC
704 1.1 lukem fi
705 1.1 lukem
706 1.1.1.9 christos #echo "Filtering provider results..."
707 1.1.1.9 christos $LDIFFILTER < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
708 1.1.1.9 christos #echo "Filtering consumer results..."
709 1.1.1.9 christos $LDIFFILTER < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
710 1.1 lukem
711 1.1.1.9 christos echo "$CHECK < Comparing retrieved entries from provider and consumer..."
712 1.1.1.9 christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
713 1.1 lukem
714 1.1 lukem if test $? != 0 ; then
715 1.1 lukem # FIXME: keep the original workaround in place, in case we needed again
716 1.1 lukem if test 1 = 1 ; then
717 1.1.1.9 christos echo "test failed - provider and consumer databases differ"
718 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
719 1.1 lukem exit 1
720 1.1 lukem fi
721 1.1 lukem
722 1.1.1.9 christos echo " test failed - provider and consumer databases differ (ignored by now)"
723 1.1 lukem echo " Stopping proxy to see if it auto-recovers..."
724 1.1 lukem kill -HUP $PROXYPID
725 1.1 lukem wait $PROXYPID
726 1.1 lukem
727 1.1 lukem echo " ${CHECK}.1 > Restarting proxy..."
728 1.1 lukem echo "======================= RESTART =======================" >> $LOG3
729 1.1.1.9 christos $SLAPD -f $CONF3 -h $URI3 -d $LVL >> $LOG3 2>&1 &
730 1.1 lukem PROXYPID=$!
731 1.1 lukem if test $WAIT != 0 ; then
732 1.1 lukem echo PROXYPID $PROXYPID
733 1.1 lukem read foo
734 1.1 lukem fi
735 1.1.1.9 christos KILLPIDS="$PROVIDERPID $CONSUMERPID $PROXYPID"
736 1.1 lukem
737 1.1.1.2 lukem echo " Waiting $SLEEP2 seconds for syncrepl to receive changes..."
738 1.1.1.2 lukem sleep $SLEEP2
739 1.1 lukem
740 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the consumer..."
741 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
742 1.1.1.9 christos '(objectClass=*)' > "${CONSUMEROUT}.5.1" 2>&1
743 1.1 lukem RC=$?
744 1.1 lukem
745 1.1 lukem if test $RC != 0 ; then
746 1.1.1.9 christos echo " ldapsearch failed at consumer ($RC)!"
747 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
748 1.1 lukem exit $RC
749 1.1 lukem fi
750 1.1 lukem
751 1.1.1.9 christos #echo "Filtering consumer results..."
752 1.1.1.9 christos $LDIFFILTER < "${CONSUMEROUT}.5.1" > $CONSUMERFLT
753 1.1 lukem
754 1.1.1.9 christos echo " ${CHECK}.1 < Comparing retrieved entries from provider and consumer..."
755 1.1.1.9 christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
756 1.1 lukem
757 1.1 lukem if test $? != 0 ; then
758 1.1.1.9 christos echo " test failed - provider and consumer databases differ"
759 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
760 1.1 lukem exit 1
761 1.1 lukem fi
762 1.1 lukem fi
763 1.1 lukem
764 1.1 lukem #
765 1.1 lukem # Modifications formerly known to fail
766 1.1 lukem #
767 1.1 lukem CHECK=`expr $CHECK + 1`
768 1.1 lukem echo "$CHECK > Performing modifications that were formerly known to fail..."
769 1.1.1.9 christos $LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD > \
770 1.1 lukem $TESTOUT 2>&1 << EOMODS
771 1.1 lukem # First, back out previous change
772 1.1 lukem dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
773 1.1 lukem changetype: modify
774 1.1 lukem delete: drink
775 1.1 lukem drink: Mad Dog 20/20
776 1.1 lukem
777 1.1 lukem # From now on, perform modifications that were formerly known to fail
778 1.1 lukem dn: cn=All Staff,ou=Groups,dc=example,dc=com
779 1.1 lukem changetype: modify
780 1.1 lukem delete: description
781 1.1 lukem
782 1.1 lukem EOMODS
783 1.1 lukem
784 1.1 lukem RC=$?
785 1.1 lukem if test $RC != 0 ; then
786 1.1 lukem echo "ldapmodify failed ($RC)!"
787 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
788 1.1 lukem exit $RC
789 1.1 lukem fi
790 1.1 lukem
791 1.1.1.9 christos # get provider contextCSN
792 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
793 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${PROVIDEROUT}.$CHECK" 2>&1
794 1.1 lukem RC=$?
795 1.1 lukem if test $RC != 0 ; then
796 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
797 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
798 1.1 lukem exit $RC
799 1.1 lukem fi
800 1.1 lukem
801 1.1.1.9 christos # check consumer contextCSN
802 1.1 lukem sleep 1
803 1.1 lukem for i in 1 2 3; do
804 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
805 1.1.1.9 christos -s base '(objectClass=*)' contextCSN > "${CONSUMEROUT}.$CHECK" 2>&1
806 1.1 lukem RC=$?
807 1.1 lukem
808 1.1 lukem if test $RC != 0 ; then
809 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
810 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
811 1.1 lukem exit $RC
812 1.1 lukem fi
813 1.1 lukem
814 1.1.1.9 christos $CMP ${PROVIDEROUT}.$CHECK ${CONSUMEROUT}.$CHECK > $CMPOUT
815 1.1 lukem
816 1.1 lukem if test $? = 0 ; then
817 1.1 lukem break
818 1.1 lukem fi
819 1.1 lukem
820 1.1.1.2 lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
821 1.1.1.2 lukem sleep $SLEEP1
822 1.1 lukem done
823 1.1 lukem
824 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the provider..."
825 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
826 1.1.1.9 christos '(objectClass=*)' > "${PROVIDEROUT}.$CHECK" 2>&1
827 1.1 lukem RC=$?
828 1.1 lukem
829 1.1 lukem if test $RC != 0 ; then
830 1.1.1.9 christos echo "ldapsearch failed at provider ($RC)!"
831 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
832 1.1 lukem exit $RC
833 1.1 lukem fi
834 1.1 lukem
835 1.1.1.9 christos #echo "Using ldapsearch to read all the entries from the consumer..."
836 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
837 1.1.1.9 christos '(objectClass=*)' > "${CONSUMEROUT}.$CHECK" 2>&1
838 1.1 lukem RC=$?
839 1.1 lukem
840 1.1 lukem if test $RC != 0 ; then
841 1.1.1.9 christos echo "ldapsearch failed at consumer ($RC)!"
842 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
843 1.1 lukem exit $RC
844 1.1 lukem fi
845 1.1 lukem
846 1.1.1.9 christos #echo "Filtering provider results..."
847 1.1.1.9 christos $LDIFFILTER < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
848 1.1.1.9 christos #echo "Filtering consumer results..."
849 1.1.1.9 christos $LDIFFILTER < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
850 1.1 lukem
851 1.1.1.9 christos echo "$CHECK < Comparing retrieved entries from provider and consumer..."
852 1.1.1.9 christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
853 1.1 lukem
854 1.1 lukem if test $? != 0 ; then
855 1.1.1.9 christos echo "test failed - provider and consumer databases differ (ignored by now)"
856 1.1.1.9 christos #echo "test failed - provider and consumer databases differ"
857 1.1 lukem #test $KILLSERVERS != no && kill -HUP $KILLPIDS
858 1.1 lukem #exit 1
859 1.1 lukem fi
860 1.1 lukem
861 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
862 1.1 lukem
863 1.1 lukem echo ">>>>> Test succeeded"
864 1.1 lukem
865 1.1 lukem test $KILLSERVERS != no && wait
866 1.1 lukem
867 1.1 lukem exit 0
868