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