]> git.sur5r.net Git - openldap/blob - tests/scripts/test044-dynlist
837f3b120c78d520dfd682db6601c4bb6c158323
[openldap] / tests / scripts / test044-dynlist
1 #! /bin/sh
2 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
3 ##
4 ## Copyright 1998-2011 The OpenLDAP Foundation.
5 ## All rights reserved.
6 ##
7 ## Redistribution and use in source and binary forms, with or without
8 ## modification, are permitted only as authorized by the OpenLDAP
9 ## Public License.
10 ##
11 ## A copy of this license is available in the file LICENSE in the
12 ## top-level directory of the distribution or, alternatively, at
13 ## <http://www.OpenLDAP.org/license.html>.
14
15 echo "running defines.sh"
16 . $SRCDIR/scripts/defines.sh
17
18 if test $DYNLIST = "dynlistno" ; then 
19         echo "dynlist overlay not available, test skipped"
20         exit 0
21 fi 
22
23 if test $BACKEND = ldif ; then
24         # dynlist+ldif fails because back-ldif lacks bi_op_compare()
25         echo "$BACKEND backend unsuitable for dynlist overlay, test skipped"
26         exit 0
27 fi
28
29 mkdir -p $TESTDIR $DBDIR1
30
31 $SLAPPASSWD -g -n >$CONFIGPWF
32 echo "rootpw `$SLAPPASSWD -T $CONFIGPWF`" >$TESTDIR/configpw.conf
33
34 echo "Running slapadd to build slapd database..."
35 . $CONFFILTER $BACKEND $MONITORDB < $MCONF > $ADDCONF
36 $SLAPADD -f $ADDCONF -l $LDIFORDERED
37 RC=$?
38 if test $RC != 0 ; then
39         echo "slapadd failed ($RC)!"
40         exit $RC
41 fi
42
43 . $CONFFILTER $BACKEND $MONITORDB < $DYNLISTCONF > $CONF1
44
45 echo "Starting slapd on TCP/IP port $PORT1..."
46 $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
47 PID=$!
48 if test $WAIT != 0 ; then
49     echo PID $PID
50     read foo
51 fi
52 KILLPIDS="$PID"
53
54 sleep 1
55
56 echo "Testing slapd searching..."
57 for i in 0 1 2 3 4 5; do
58         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
59                 '(objectclass=*)' > /dev/null 2>&1
60         RC=$?
61         if test $RC = 0 ; then
62                 break
63         fi
64         echo "Waiting 5 seconds for slapd to start..."
65         sleep 5
66 done
67
68 if test $RC != 0 ; then
69         echo "ldapsearch failed ($RC)!"
70         test $KILLSERVERS != no && kill -HUP $KILLPIDS
71         exit $RC
72 fi
73
74 cat /dev/null > $SEARCHOUT
75
76 LISTDN="ou=Dynamic Lists,$BASEDN"
77 echo "Adding a dynamic list..."
78 $LDAPADD -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD \
79         > $TESTOUT 2>&1 << EOMODS
80 dn: $LISTDN
81 objectClass: organizationalUnit
82 ou: Dynamic Lists
83
84 dn: cn=Dynamic List,$LISTDN
85 objectClass: groupOfURLs
86 cn: Dynamic List
87 memberURL: ldap:///ou=People,${BASEDN}?cn,mail?sub?(objectClass=person)
88 EOMODS
89
90 echo "Testing list search of all attrs..."
91 echo "# Testing list search of all attrs..." >> $SEARCHOUT
92 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
93         '(cn=Dynamic List)' '*' \
94         >> $SEARCHOUT 2>&1
95 RC=$?
96 if test $RC != 0 ; then
97         echo "ldapsearch failed ($RC)!"
98         test $KILLSERVERS != no && kill -HUP $KILLPIDS
99         exit $RC
100 fi
101
102 echo "Testing list search of a listed attr..."
103 echo "# Testing list search of a listed attr..." >> $SEARCHOUT
104 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
105         '(cn=Dynamic List)' mail \
106         >> $SEARCHOUT 2>&1
107 RC=$?
108 if test $RC != 0 ; then
109         echo "ldapsearch failed ($RC)!"
110         test $KILLSERVERS != no && kill -HUP $KILLPIDS
111         exit $RC
112 fi
113
114 echo "Testing list search of a non-listed attr..."
115 echo "# Testing list search of a non-listed attr..." >> $SEARCHOUT
116 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
117         '(cn=Dynamic List)' objectClass \
118         >> $SEARCHOUT 2>&1
119 RC=$?
120 if test $RC != 0 ; then
121         echo "ldapsearch failed ($RC)!"
122         test $KILLSERVERS != no && kill -HUP $KILLPIDS
123         exit $RC
124 fi
125
126 echo "Testing list search with (critical) manageDSAit..."
127 echo "# Testing list search with (critical) manageDSAit..." >> $SEARCHOUT
128 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 -MM \
129         '(cn=Dynamic List)' '*' \
130         >> $SEARCHOUT 2>&1
131 RC=$?
132 if test $RC != 0 ; then
133         echo "ldapsearch failed ($RC)!"
134         test $KILLSERVERS != no && kill -HUP $KILLPIDS
135         exit $RC
136 fi
137
138 echo "Testing list compare..."
139 echo "# Testing list compare..." >> $SEARCHOUT
140 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
141         "cn=Dynamic List,$LISTDN" "cn:Bjorn Jensen" \
142         >> $SEARCHOUT 2>&1
143 RC=$?
144 case $RC in
145 5)
146         echo "ldapcompare returned FALSE ($RC)!"
147         test $KILLSERVERS != no && kill -HUP $KILLPIDS
148         exit $RC
149         ;;
150 6)
151         echo "ldapcompare returned TRUE ($RC)"
152         ;;
153 0)
154         echo "ldapcompare returned success ($RC)!"
155         test $KILLSERVERS != no && kill -HUP $KILLPIDS
156         exit -1
157         ;;
158 *)
159         echo "ldapcompare failed ($RC)!"
160         test $KILLSERVERS != no && kill -HUP $KILLPIDS
161         exit $RC
162         ;;
163 esac
164 echo "" >> $SEARCHOUT
165
166 echo "Testing list compare (should return FALSE)..."
167 echo "# Testing list compare (should return FALSE)..." >> $SEARCHOUT
168 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
169         "cn=Dynamic List,$LISTDN" "cn:FALSE" \
170         >> $SEARCHOUT 2>&1
171 RC=$?
172 case $RC in
173 5)
174         echo "ldapcompare returned FALSE ($RC)"
175         ;;
176 6)
177         echo "ldapcompare returned TRUE ($RC)!"
178         test $KILLSERVERS != no && kill -HUP $KILLPIDS
179         exit $RC
180         ;;
181 0)
182         echo "ldapcompare returned success ($RC)!"
183         test $KILLSERVERS != no && kill -HUP $KILLPIDS
184         exit -1
185         ;;
186 *)
187         echo "ldapcompare failed ($RC)!"
188         test $KILLSERVERS != no && kill -HUP $KILLPIDS
189         exit $RC
190         ;;
191 esac
192 echo "" >> $SEARCHOUT
193
194 echo "Testing list compare (should return UNDEFINED)..."
195 echo "# Testing list compare (should return UNDEFINED)..." >> $SEARCHOUT
196 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
197         "cn=Dynamic List,$LISTDN" "dc:UNDEFINED" \
198         >> $SEARCHOUT 2>&1
199 RC=$?
200 case $RC in
201 5)
202         echo "ldapcompare returned FALSE ($RC)!"
203         test $KILLSERVERS != no && kill -HUP $KILLPIDS
204         exit $RC
205         ;;
206 6)
207         echo "ldapcompare returned TRUE ($RC)!"
208         test $KILLSERVERS != no && kill -HUP $KILLPIDS
209         exit $RC
210         ;;
211 16|32)
212         echo "ldapcompare returned UNDEFINED ($RC)"
213         ;;
214 0)
215         echo "ldapcompare returned success ($RC)!"
216         test $KILLSERVERS != no && kill -HUP $KILLPIDS
217         exit -1
218         ;;
219 *)
220         echo "ldapcompare failed ($RC)"
221         ;;
222 esac
223 echo "" >> $SEARCHOUT
224
225 echo "Testing list compare with manageDSAit..."
226 echo "# Testing list compare with manageDSAit..." >> $SEARCHOUT
227 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 -MM \
228         "cn=Dynamic List,$LISTDN" "cn:Bjorn Jensen" \
229         >> $SEARCHOUT 2>&1
230 RC=$?
231 case $RC in
232 5)
233         echo "ldapcompare returned FALSE ($RC)"
234         ;;
235 6)
236         echo "ldapcompare returned TRUE ($RC)!"
237         test $KILLSERVERS != no && kill -HUP $KILLPIDS
238         exit $RC
239         ;;
240 0)
241         echo "ldapcompare returned success ($RC)!"
242         test $KILLSERVERS != no && kill -HUP $KILLPIDS
243         exit -1
244         ;;
245 *)
246         echo "ldapcompare failed ($RC)!"
247         test $KILLSERVERS != no && kill -HUP $KILLPIDS
248         exit $RC
249         ;;
250 esac
251 echo "" >> $SEARCHOUT
252
253 echo "Reconfiguring slapd..."
254 $LDAPMODIFY -x -D cn=config -h $LOCALHOST -p $PORT1 -y $CONFIGPWF > \
255         $TESTOUT 2>&1 << EOMODS
256 version: 1
257 dn: olcOverlay={0}dynlist,olcDatabase={2}$BACKEND,cn=config
258 changetype: modify
259 delete: olcDLattrSet
260 olcDLattrSet: {0}
261 -
262 add: olcDLattrSet
263 olcDLattrSet: groupOfURLs memberURL sn:cn mail
264 -
265 EOMODS
266
267 echo "==========================================================" >> $LOG1
268
269 echo "Testing attribute mapping"
270
271 echo "Testing list search of all (mapped) attrs..."
272 echo "# Testing list search of all (mapped) attrs..." >> $SEARCHOUT
273 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
274         '(cn=Dynamic List)' '*' \
275         >> $SEARCHOUT 2>&1
276 RC=$?
277 if test $RC != 0 ; then
278         echo "ldapsearch failed ($RC)!"
279         test $KILLSERVERS != no && kill -HUP $KILLPIDS
280         exit $RC
281 fi
282
283 echo "Testing list search of a (mapped) listed attr..."
284 echo "# Testing list search of a (mapped) listed attr..." >> $SEARCHOUT
285 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
286         '(cn=Dynamic List)' sn \
287         >> $SEARCHOUT 2>&1
288 RC=$?
289 if test $RC != 0 ; then
290         echo "ldapsearch failed ($RC)!"
291         test $KILLSERVERS != no && kill -HUP $KILLPIDS
292         exit $RC
293 fi
294
295 echo "Testing list search of a (n unmapped) listed attr..."
296 echo "# Testing list search of a (n unmapped) listed attr..." >> $SEARCHOUT
297 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
298         '(cn=Dynamic List)' mail \
299         >> $SEARCHOUT 2>&1
300 RC=$?
301 if test $RC != 0 ; then
302         echo "ldapsearch failed ($RC)!"
303         test $KILLSERVERS != no && kill -HUP $KILLPIDS
304         exit $RC
305 fi
306
307 echo "Testing list compare (mapped attrs) ..."
308 echo "# Testing list compare (mapped attrs) ..." >> $SEARCHOUT
309 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
310         "cn=Dynamic List,$LISTDN" "sn:Bjorn Jensen" \
311         >> $SEARCHOUT 2>&1
312 RC=$?
313 case $RC in
314 5)
315         echo "ldapcompare returned FALSE ($RC)!"
316         test $KILLSERVERS != no && kill -HUP $KILLPIDS
317         exit $RC
318         ;;
319 6)
320         echo "ldapcompare returned TRUE ($RC)"
321         ;;
322 0)
323         echo "ldapcompare returned success ($RC)!"
324         test $KILLSERVERS != no && kill -HUP $KILLPIDS
325         exit -1
326         ;;
327 *)
328         echo "ldapcompare failed ($RC)!"
329         test $KILLSERVERS != no && kill -HUP $KILLPIDS
330         exit $RC
331         ;;
332 esac
333 echo "" >> $SEARCHOUT
334
335 echo "Testing list compare (mapped attrs; should return FALSE)..."
336 echo "# Testing list compare (mapped attrs; should return FALSE)..." >> $SEARCHOUT
337 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
338         "cn=Dynamic List,$LISTDN" "sn:FALSE" \
339         >> $SEARCHOUT 2>&1
340 RC=$?
341 case $RC in
342 5)
343         echo "ldapcompare returned FALSE ($RC)"
344         ;;
345 6)
346         echo "ldapcompare returned TRUE ($RC)!"
347         test $KILLSERVERS != no && kill -HUP $KILLPIDS
348         exit $RC
349         ;;
350 0)
351         echo "ldapcompare returned success ($RC)!"
352         test $KILLSERVERS != no && kill -HUP $KILLPIDS
353         exit -1
354         ;;
355 *)
356         echo "ldapcompare failed ($RC)!"
357         test $KILLSERVERS != no && kill -HUP $KILLPIDS
358         exit $RC
359         ;;
360 esac
361 echo "" >> $SEARCHOUT
362
363 echo "Reconfiguring slapd..."
364 $LDAPMODIFY -x -D cn=config -h $LOCALHOST -p $PORT1 -y $CONFIGPWF > \
365         $TESTOUT 2>&1 << EOMODS
366 version: 1
367 dn: olcOverlay={0}dynlist,olcDatabase={2}$BACKEND,cn=config
368 changetype: modify
369 delete: olcDLattrSet
370 olcDLattrSet: {0}
371 -
372 add: olcDLattrSet
373 olcDLattrSet: groupOfURLs memberURL member
374 -
375 EOMODS
376
377 echo "==========================================================" >> $LOG1
378
379 echo "Adding a dynamic list..."
380 $LDAPADD -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD \
381         > $TESTOUT 2>&1 << EOMODS
382 dn: cn=Dynamic List of Members,$LISTDN
383 objectClass: groupOfURLs
384 cn: Dynamic List of Members
385 memberURL: ldap:///ou=People,${BASEDN}??sub?(objectClass=person)
386 EOMODS
387
388 echo "Testing list search of all attrs..."
389 echo "# Testing list search of all attrs..." >> $SEARCHOUT
390 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
391         '(cn=Dynamic List of Members)' '*' \
392         >> $SEARCHOUT 2>&1
393 RC=$?
394 if test $RC != 0 ; then
395         echo "ldapsearch failed ($RC)!"
396         test $KILLSERVERS != no && kill -HUP $KILLPIDS
397         exit $RC
398 fi
399
400 echo "Testing list search of a listed attr..."
401 echo "# Testing list search of a listed attr..." >> $SEARCHOUT
402 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
403         '(cn=Dynamic List of Members)' member \
404         >> $SEARCHOUT 2>&1
405 RC=$?
406 if test $RC != 0 ; then
407         echo "ldapsearch failed ($RC)!"
408         test $KILLSERVERS != no && kill -HUP $KILLPIDS
409         exit $RC
410 fi
411
412 echo "Testing list search of a non-listed attr..."
413 echo "# Testing list search of a non-listed attr..." >> $SEARCHOUT
414 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
415         '(cn=Dynamic List of Members)' objectClass \
416         >> $SEARCHOUT 2>&1
417 RC=$?
418 if test $RC != 0 ; then
419         echo "ldapsearch failed ($RC)!"
420         test $KILLSERVERS != no && kill -HUP $KILLPIDS
421         exit $RC
422 fi
423
424 echo "Testing list search with (critical) manageDSAit..."
425 echo "# Testing list search with (critical) manageDSAit..." >> $SEARCHOUT
426 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 -MM \
427         '(&(cn=Dynamic List of Members)(objectClass=groupOfURLs))' '*' \
428         >> $SEARCHOUT 2>&1
429 RC=$?
430 if test $RC != 0 ; then
431         echo "ldapsearch failed ($RC)!"
432         test $KILLSERVERS != no && kill -HUP $KILLPIDS
433         exit $RC
434 fi
435
436 CMPDN="$BJORNSDN"
437 echo "Testing list compare..."
438 echo "# Testing list compare..." >> $SEARCHOUT
439 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
440         "cn=Dynamic List of Members,$LISTDN" "member:$CMPDN" \
441         >> $SEARCHOUT 2>&1
442 RC=$?
443 case $RC in
444 5)
445         echo "ldapcompare returned FALSE ($RC)!"
446         test $KILLSERVERS != no && kill -HUP $KILLPIDS
447         exit $RC
448         ;;
449 6)
450         echo "ldapcompare returned TRUE ($RC)"
451         ;;
452 0)
453         echo "ldapcompare returned success ($RC)!"
454         test $KILLSERVERS != no && kill -HUP $KILLPIDS
455         exit -1
456         ;;
457 *)
458         echo "ldapcompare failed ($RC)!"
459         test $KILLSERVERS != no && kill -HUP $KILLPIDS
460         exit $RC
461         ;;
462 esac
463 echo "" >> $SEARCHOUT
464
465 echo "Testing list compare (should return FALSE)..."
466 echo "# Testing list compare (should return FALSE)..." >> $SEARCHOUT
467 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
468         "cn=Dynamic List of Members,$LISTDN" "member:cn=Foo Bar" \
469         >> $SEARCHOUT 2>&1
470 RC=$?
471 case $RC in
472 5)
473         echo "ldapcompare returned FALSE ($RC)"
474         ;;
475 6)
476         echo "ldapcompare returned TRUE ($RC)!"
477         test $KILLSERVERS != no && kill -HUP $KILLPIDS
478         exit $RC
479         ;;
480 0)
481         echo "ldapcompare returned success ($RC)!"
482         test $KILLSERVERS != no && kill -HUP $KILLPIDS
483         exit -1
484         ;;
485 *)
486         echo "ldapcompare failed ($RC)!"
487         test $KILLSERVERS != no && kill -HUP $KILLPIDS
488         exit $RC
489         ;;
490 esac
491 echo "" >> $SEARCHOUT
492
493 echo "Testing list compare with manageDSAit..."
494 echo "# Testing list compare with manageDSAit..." >> $SEARCHOUT
495 $LDAPCOMPARE -h $LOCALHOST -p $PORT1 -MM \
496         "cn=Dynamic List,$LISTDN" "member:$CMPDN" \
497         >> $SEARCHOUT 2>&1
498 RC=$?
499 case $RC in
500 5)
501         echo "ldapcompare returned FALSE ($RC)"
502         ;;
503 6)
504         echo "ldapcompare returned TRUE ($RC)!"
505         test $KILLSERVERS != no && kill -HUP $KILLPIDS
506         exit $RC
507         ;;
508 0)
509         echo "ldapcompare returned success ($RC)!"
510         test $KILLSERVERS != no && kill -HUP $KILLPIDS
511         exit -1
512         ;;
513 *)
514         echo "ldapcompare failed ($RC)!"
515         test $KILLSERVERS != no && kill -HUP $KILLPIDS
516         exit $RC
517         ;;
518 esac
519 echo "" >> $SEARCHOUT
520
521 echo "==========================================================" >> $LOG1
522
523 echo "Testing dgIdentity..."
524
525 # Set ACL, require authentication to get list contents
526 $LDAPMODIFY -x -D cn=config -h $LOCALHOST -p $PORT1 -y $CONFIGPWF > \
527         $TESTOUT 2>&1 << EOMODS
528 version: 1
529 dn: olcDatabase={2}$BACKEND,cn=config
530 changetype: modify
531 add: olcAccess
532 olcAccess: to dn.base="cn=Dynamic List of Members,$LISTDN" by * read
533 olcAccess: to * by users read by * search
534 EOMODS
535
536 echo "Testing list search without dgIdentity..."
537 echo "# Testing list search without dgIdentity..." >> $SEARCHOUT
538 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
539         '(cn=Dynamic List of Members)' '*' \
540         >> $SEARCHOUT 2>&1
541 RC=$?
542 if test $RC != 0 ; then
543         echo "ldapsearch failed ($RC)!"
544         test $KILLSERVERS != no && kill -HUP $KILLPIDS
545         exit $RC
546 fi
547
548 $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD \
549         > $TESTOUT 2>&1 << EOMODS
550 dn: cn=Dynamic List of Members,$LISTDN
551 changetype: modify
552 add: objectClass
553 objectClass: dgIdentityAux
554 -
555 add: dgIdentity
556 dgIdentity: $CMPDN
557 EOMODS
558
559 echo "Testing list search with dgIdentity..."
560 echo "# Testing list search with dgIdentity..." >> $SEARCHOUT
561 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
562         '(cn=Dynamic List of Members)' '*' \
563         >> $SEARCHOUT 2>&1
564 RC=$?
565 if test $RC != 0 ; then
566         echo "ldapsearch failed ($RC)!"
567         test $KILLSERVERS != no && kill -HUP $KILLPIDS
568         exit $RC
569 fi
570
571 echo "Testing dgAuthz..."
572
573 CMPDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN"
574 $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD \
575         > $TESTOUT 2>&1 << EOMODS
576 dn: cn=Dynamic List of Members,$LISTDN
577 changetype: modify
578 add: dgAuthz
579 dgAuthz: dn:$BABSDN
580 EOMODS
581
582 echo "Testing list search with dgIdentity and dgAuthz anonymously..."
583 echo "# Testing list search with dgIdentity and dgAuthz anonymously..." >> $SEARCHOUT
584 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
585         '(cn=Dynamic List of Members)' '*' \
586         >> $SEARCHOUT 2>&1
587 RC=$?
588 if test $RC != 0 ; then
589         echo "ldapsearch failed ($RC)!"
590         test $KILLSERVERS != no && kill -HUP $KILLPIDS
591         exit $RC
592 fi
593
594 echo "Testing list search with dgIdentity and dgAuthz as the authorized identity..."
595 echo "# Testing list search with dgIdentity and dgAuthz as the authorized identity..." >> $SEARCHOUT
596 $LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
597         -D "$BABSDN" -w bjensen \
598         '(cn=Dynamic List of Members)' '*' \
599         >> $SEARCHOUT 2>&1
600 RC=$?
601 if test $RC != 0 ; then
602         echo "ldapsearch failed ($RC)!"
603         test $KILLSERVERS != no && kill -HUP $KILLPIDS
604         exit $RC
605 fi
606
607 test $KILLSERVERS != no && kill -HUP $KILLPIDS
608
609 LDIF=$DYNLISTOUT
610
611 echo "Filtering ldapsearch results..."
612 $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
613 echo "Filtering original ldif used to create database..."
614 $LDIFFILTER < $LDIF > $LDIFFLT
615 echo "Comparing filter output..."
616 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
617
618 if test $? != 0 ; then
619         echo "Comparison failed"
620         exit 1
621 fi
622
623 echo ">>>>> Test succeeded"
624
625 test $KILLSERVERS != no && wait
626
627 exit 0