]> git.sur5r.net Git - openldap/blob - tests/scripts/test035-meta
Fix prev commit, better test for multiple URI matches
[openldap] / tests / scripts / test035-meta
1 #! /bin/sh
2 # $OpenLDAP$
3 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 ##
5 ## Copyright 1998-2006 The OpenLDAP Foundation.
6 ## All rights reserved.
7 ##
8 ## Redistribution and use in source and binary forms, with or without
9 ## modification, are permitted only as authorized by the OpenLDAP
10 ## Public License.
11 ##
12 ## A copy of this license is available in the file LICENSE in the
13 ## top-level directory of the distribution or, alternatively, at
14 ## <http://www.OpenLDAP.org/license.html>.
15
16 echo "running defines.sh"
17 . $SRCDIR/scripts/defines.sh
18
19 echo ""
20
21 if test $BACKMETA = metano ; then 
22         echo "meta backend not available, test skipped"
23         exit 0
24 fi
25
26 rm -rf $TESTDIR
27
28 mkdir -p $TESTDIR $DBDIR1 $DBDIR2
29
30 echo "Starting slapd on TCP/IP port $PORT1..."
31 . $CONFFILTER $BACKEND $MONITORDB < $CONF > $CONF1
32 $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
33 PID=$!
34 if test $WAIT != 0 ; then
35     echo PID $PID
36     read foo
37 fi
38 KILLPIDS="$PID"
39
40 sleep 1
41
42 echo "Using ldapsearch to check that slapd is running..."
43 for i in 0 1 2 3 4 5; do
44         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
45                 'objectclass=*' > /dev/null 2>&1
46         RC=$?
47         if test $RC = 0 ; then
48                 break
49         fi
50         echo "Waiting 5 seconds for slapd to start..."
51         sleep 5
52 done
53 if test $RC != 0 ; then
54         echo "ldapsearch failed ($RC)!"
55         test $KILLSERVERS != no && kill -HUP $KILLPIDS
56         exit $RC
57 fi
58
59 echo "Using ldapadd to populate the database..."
60 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \
61         $LDIFORDERED > $TESTOUT 2>&1
62 RC=$?
63 if test $RC != 0 ; then
64         echo "ldapadd failed ($RC)!"
65         test $KILLSERVERS != no && kill -HUP $KILLPIDS
66         exit $RC
67 fi
68
69 echo "Starting slapd on TCP/IP port $PORT2..."
70 . $CONFFILTER $BACKEND $MONITORDB < $METACONF2 > $CONF2
71 $SLAPD -f $CONF2 -h $URI2 -d $LVL $TIMING > $LOG2 2>&1 &
72 PID=$!
73 if test $WAIT != 0 ; then
74     echo PID $PID
75     read foo
76 fi
77 KILLPIDS="$KILLPIDS $PID"
78
79 sleep 1
80
81 echo "Using ldapsearch to check that slapd is running..."
82 for i in 0 1 2 3 4 5; do
83         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \
84                 'objectclass=*' > /dev/null 2>&1
85         RC=$?
86         if test $RC = 0 ; then
87                 break
88         fi
89         echo "Waiting 5 seconds for slapd to start..."
90         sleep 5
91 done
92 if test $RC != 0 ; then
93         echo "ldapsearch failed ($RC)!"
94         test $KILLSERVERS != no && kill -HUP $KILLPIDS
95         exit $RC
96 fi
97
98 echo "Using ldapadd to populate the database..."
99 $LDAPADD -D "$METAMANAGERDN" -h $LOCALHOST -p $PORT2 -w $PASSWD < \
100         $LDIFMETA >> $TESTOUT 2>&1
101 RC=$?
102 if test $RC != 0 ; then
103         echo "ldapadd failed ($RC)!"
104         test $KILLSERVERS != no && kill -HUP $KILLPIDS
105         exit $RC
106 fi
107
108 echo "Starting slapd on TCP/IP port $PORT3..."
109 . $CONFFILTER $BACKEND $MONITORDB < $METACONF > $CONF3
110 $SLAPD -f $CONF3 -h $URI3 -d $LVL $TIMING > $LOG3 2>&1 &
111 PID=$!
112 if test $WAIT != 0 ; then
113     echo PID $PID
114     read foo
115 fi
116 KILLPIDS="$KILLPIDS $PID"
117
118 sleep 1
119
120 echo "Using ldapsearch to check that slapd is running..."
121 for i in 0 1 2 3 4 5; do
122         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT3 \
123                 'objectclass=*' > /dev/null 2>&1
124         RC=$?
125         if test $RC = 0 ; then
126                 break
127         fi
128         echo "Waiting 5 seconds for slapd to start..."
129         sleep 5
130 done
131 if test $RC != 0 ; then
132         echo "ldapsearch failed ($RC)!"
133         test $KILLSERVERS != no && kill -HUP $KILLPIDS
134         exit $RC
135 fi
136
137 cat /dev/null > $SEARCHOUT
138
139 BASEDN="o=Example,c=US"
140 echo "Searching base=\"$BASEDN\"..."
141 echo "# searching base=\"$BASEDN\"..." >> $SEARCHOUT
142 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" >> $SEARCHOUT 2>&1
143 RC=$?
144 #if test $RC != 0 ; then
145 #       echo "Search failed ($RC)!"
146 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
147 #       exit $RC
148 #fi
149 case $RC in 
150         0)
151         ;;
152         51)
153                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
154                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
155                 exit 0
156         ;;
157         *)
158                 echo "Search failed ($RC)!"
159                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
160                 exit $RC
161         ;;
162 esac
163
164 # ITS#4195: spurious matchedDN when the search scopes the main target,
165 # and the searchBase is not present, so that target returns noSuchObject
166 BASEDN="ou=Meta,o=Example,c=US"
167 echo "Searching base=\"$BASEDN\"..."
168 echo "# searching base=\"$BASEDN\"..." >> $SEARCHOUT
169 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" >> $SEARCHOUT 2>&1
170 RC=$?
171 #if test $RC != 0 ; then
172 #       echo "Search failed ($RC)!"
173 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
174 #       exit $RC
175 #fi
176 case $RC in 
177         0)
178         ;;
179         51)
180                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
181                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
182                 exit 0
183         ;;
184         *)
185                 echo "Search failed ($RC)!"
186                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
187                 exit $RC
188         ;;
189 esac
190
191 #
192 # Do some modifications
193 #
194
195 BASEDN="o=Example,c=US"
196 echo "Modifying database \"$BASEDN\"..."
197 $LDAPMODIFY -v -D "cn=Manager,$BASEDN" -h $LOCALHOST -p $PORT3 -w $PASSWD \
198         -M >> $TESTOUT 2>&1 << EOMODS
199 # These operations (updates with objectClass mapping) triggered ITS#3499
200 dn: cn=Added Group,ou=Groups,$BASEDN
201 changetype: add
202 objectClass: groupOfNames
203 objectClass: uidObject
204 cn: Added Group
205 member: cn=Added Group,ou=Groups,$BASEDN
206 uid: added
207
208 dn: cn=Another Added Group,ou=Groups,$BASEDN
209 changetype: add
210 objectClass: groupOfNames
211 cn: Another Added Group
212 member: cn=Added Group,ou=Groups,$BASEDN
213 member: cn=Another Added Group,ou=Groups,$BASEDN
214
215 dn: cn=Another Added Group,ou=Groups,$BASEDN
216 changetype: modify
217 add: objectClass
218 objectClass: uidObject
219 -
220 add: uid
221 uid: added
222 -
223
224 dn: cn=Added Group,ou=Groups,$BASEDN
225 changetype: modify
226 delete: objectClass
227 objectClass: uidObject
228 -
229 delete: uid
230 -
231
232 dn: ou=Meta,$BASEDN
233 changetype: modify
234 add: description
235 description: added to "ou=Meta,$BASEDN"
236 -
237
238 dn: ou=Who's going to handle this?,$BASEDN
239 changetype: add
240 objectClass: organizationalUnit
241 ou: Who's going to handle this?
242 description: added
243 description: will be deleted
244
245 dn: ou=Same as above,$BASEDN
246 changetype: add
247 objectClass: organizationalUnit
248 ou: Same as above
249 description: added right after "Who's going to handle this?"
250 description: will be preserved
251
252 dn: ou=Who's going to handle this?,$BASEDN
253 changetype: delete
254
255 dn: ou=Who's going to handle this?,ou=Meta,$BASEDN
256 changetype: add
257 objectClass: organizationalUnit
258 ou: Who's going to handle this?
259 description: added
260 description: will be deleted
261
262 dn: ou=Same as above,ou=Meta,$BASEDN
263 changetype: add
264 objectClass: organizationalUnit
265 ou: Same as above
266 description: added right after "Who's going to handle this?"
267 description: will be preserved
268
269 dn: cn=Added User,ou=Same as above,ou=Meta,$BASEDN
270 changetype: add
271 objectClass: inetOrgPerson
272 cn: Added User
273 sn: User
274 userPassword: secret
275
276 dn: ou=Who's going to handle this?,ou=Meta,$BASEDN
277 changetype: delete
278 EOMODS
279
280 RC=$?
281 #if test $RC != 0 ; then
282 #       echo "Modify failed ($RC)!"
283 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
284 #       exit $RC
285 #fi
286 case $RC in 
287         0)
288         ;;
289         51)
290                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
291                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
292                 exit 0
293         ;;
294         *)
295                 echo "Modify failed ($RC)!"
296                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
297                 exit $RC
298         ;;
299 esac
300
301 echo "Searching base=\"$BASEDN\"..."
302 echo "# searching base=\"$BASEDN\"..." >> $SEARCHOUT
303 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" >> $SEARCHOUT 2>&1
304 RC=$?
305 #if test $RC != 0 ; then
306 #       echo "Search failed ($RC)!"
307 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
308 #       exit $RC
309 #fi
310 case $RC in 
311         0)
312         ;;
313         51)
314                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
315                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
316                 exit 0
317         ;;
318         *)
319                 echo "Search failed ($RC)!"
320                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
321                 exit $RC
322         ;;
323 esac
324
325 BASEDN="o=Example,c=US"
326 echo "  base=\"$BASEDN\"..."
327 echo "#         base=\"$BASEDN\"..." >> $SEARCHOUT
328 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" -M "$FILTER" '*' ref \
329         >> $SEARCHOUT 2>&1
330 RC=$?
331 #if test $RC != 0 ; then
332 #       echo "Search failed ($RC)!"
333 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
334 #       exit $RC
335 #fi
336 case $RC in 
337         0)
338         ;;
339         51)
340                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
341                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
342                 exit 0
343         ;;
344         *)
345                 echo "Search failed ($RC)!"
346                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
347                 exit $RC
348         ;;
349 esac
350
351 BASEDN="o=Example,c=US"
352 FILTER="(seeAlso=cn=all staff,ou=Groups,$BASEDN)"
353 echo "Searching filter=\"$FILTER\""
354 echo "  attrs=\"seeAlso\""
355 echo "  base=\"$BASEDN\"..."
356 echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT
357 echo "#         attrs=\"seeAlso\"" >> $SEARCHOUT
358 echo "#         base=\"$BASEDN\"..." >> $SEARCHOUT
359 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" "$FILTER" seeAlso \
360         >> $SEARCHOUT 2>&1
361 RC=$?
362 #if test $RC != 0 ; then
363 #       echo "Search failed ($RC)!"
364 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
365 #       exit $RC
366 #fi
367 case $RC in 
368         0)
369         ;;
370         51)
371                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
372                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
373                 exit 0
374         ;;
375         *)
376                 echo "Search failed ($RC)!"
377                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
378                 exit $RC
379         ;;
380 esac
381
382 FILTER="(uid=example)"
383 echo "Searching filter=\"$FILTER\""
384 echo "  attrs=\"uid\""
385 echo "  base=\"$BASEDN\"..."
386 echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT
387 echo "#         attrs=\"uid\"" >> $SEARCHOUT
388 echo "#         base=\"$BASEDN\"..." >> $SEARCHOUT
389 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" "$FILTER" uid \
390         >> $SEARCHOUT 2>&1
391 RC=$?
392 #if test $RC != 0 ; then
393 #       echo "Search failed ($RC)!"
394 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
395 #       exit $RC
396 #fi
397 case $RC in 
398         0)
399         ;;
400         51)
401                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
402                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
403                 exit 0
404         ;;
405         *)
406                 echo "Search failed ($RC)!"
407                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
408                 exit $RC
409         ;;
410 esac
411
412 FILTER="(member=cn=Another Added Group,ou=Groups,$BASEDN)"
413 echo "Searching filter=\"$FILTER\""
414 echo "  attrs=\"member\""
415 echo "  base=\"$BASEDN\"..."
416 echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT
417 echo "#         attrs=\"member\"" >> $SEARCHOUT
418 echo "#         base=\"$BASEDN\"..." >> $SEARCHOUT
419 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" "$FILTER" member \
420         >> $SEARCHOUT 2>&1
421 RC=$?
422 #if test $RC != 0 ; then
423 #       echo "Search failed ($RC)!"
424 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
425 #       exit $RC
426 #fi
427 case $RC in 
428         0)
429         ;;
430         51)
431                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
432                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
433                 exit 0
434         ;;
435         *)
436                 echo "Search failed ($RC)!"
437                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
438                 exit $RC
439         ;;
440 esac
441
442 echo "Waiting 10 seconds for cached connections to timeout..."
443 sleep 10
444
445 echo "Searching with a timed out connection..."
446 echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT
447 echo "#         attrs=\"member\"" >> $SEARCHOUT
448 echo "#         base=\"$BASEDN\"" >> $SEARCHOUT
449 echo "#         with a timed out connection..." >> $SEARCHOUT
450 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \
451         -b "$BASEDN" "$FILTER" member \
452         >> $SEARCHOUT 2>&1
453 RC=$?
454 #if test $RC != 0 ; then
455 #       echo "Search failed ($RC)!"
456 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
457 #       exit $RC
458 #fi
459 case $RC in 
460         0)
461         ;;
462         51)
463                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
464                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
465                 exit 0
466         ;;
467         *)
468                 echo "Search failed ($RC)!"
469                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
470                 exit $RC
471         ;;
472 esac
473
474 # NOTE: cannot send to $SEARCHOUT because the returned entries
475 # are not predictable...
476 echo "Checking server-enforced size limit..."
477 echo "# Checking server-enforced size limit..." >> $SEARCHOUT
478 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 \
479         -D "cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" -w bjorn \
480         -b "$BASEDN" "(objectClass=*)" 1.1 \
481         >> $TESTOUT 2>&1
482 RC=$?
483 case $RC in 
484         0)
485                 echo "Search should have failed ($RC)!"
486                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
487                 exit -1
488         ;;
489         4)
490         ;;
491         *)
492                 echo "Search failed ($RC)!"
493                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
494                 exit $RC
495         ;;
496 esac
497
498 # NOTE: cannot send to $SEARCHOUT because the returned entries
499 # are not predictable...
500 echo "Checking client-requested size limit..."
501 echo "# Checking client-requested size limit..." >> $SEARCHOUT
502 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 \
503         -D "cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" -w bjorn \
504         -b "$BASEDN" -z 2 "(objectClass=*)" 1.1 \
505         >> $TESTOUT 2>&1
506 RC=$?
507 case $RC in 
508         0)
509                 echo "Search should have failed ($RC)!"
510                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
511                 exit -1
512         ;;
513         4)
514         ;;
515         *)
516                 echo "Search failed ($RC)!"
517                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
518                 exit $RC
519         ;;
520 esac
521
522 echo "Filtering ldapsearch results..."
523 . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
524 echo "Filtering original ldif used to create database..."
525 . $LDIFFILTER < $METAOUT > $LDIFFLT
526 echo "Comparing filter output..."
527 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
528         
529 if test $? != 0 ; then
530         echo "comparison failed - meta search/modification didn't succeed"
531         test $KILLSERVERS != no && kill -HUP $KILLPIDS
532         exit 1
533 fi
534
535 BASEDN="o=Example,c=US"
536 echo "Changing password to database \"$BASEDN\"..."
537 $LDAPPASSWD -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \
538         -s $PASSWD "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \
539         >> $TESTOUT 2>&1
540 RC=$?
541 #if test $RC != 0 ; then
542 #       echo "Passwd ExOp failed ($RC)!"
543 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
544 #       exit $RC
545 #fi
546 case $RC in 
547         0)
548         ;;
549         51)
550                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
551                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
552                 exit 0
553         ;;
554         *)
555                 echo "Passwd ExOp failed ($RC)!"
556                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
557                 exit $RC
558         ;;
559 esac
560
561 echo "Binding with newly changed password to database \"$BASEDN\"..."
562 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
563         -D "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \
564         -w $PASSWD >> $TESTOUT 2>&1
565 RC=$?
566 #if test $RC != 0 ; then
567 #       echo "WhoAmI failed ($RC)!"
568 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
569 #       exit $RC
570 #fi
571 case $RC in 
572         0)
573         ;;
574         51)
575                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
576         ;;
577         *)
578                 echo "WhoAmI failed ($RC)!"
579                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
580                 exit $RC
581         ;;
582 esac
583
584 echo "Binding as newly added user to database \"$BASEDN\"..."
585 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
586         -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
587         -w $PASSWD >> $TESTOUT 2>&1
588 RC=$?
589 #if test $RC != 0 ; then
590 #       echo "WhoAmI failed ($RC)!"
591 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
592 #       exit $RC
593 #fi
594 case $RC in 
595         0)
596         ;;
597         51)
598                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
599         ;;
600         *)
601                 echo "WhoAmI failed ($RC)!"
602                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
603                 exit $RC
604         ;;
605 esac
606
607 echo "Changing password to database \"$BASEDN\"..."
608 $LDAPPASSWD -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \
609         -s meta "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
610         >> $TESTOUT 2>&1
611 RC=$?
612 #if test $RC != 0 ; then
613 #       echo "Passwd ExOp failed ($RC)!"
614 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
615 #       exit $RC
616 #fi
617 case $RC in 
618         0)
619         ;;
620         51)
621                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
622                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
623                 exit 0
624         ;;
625         *)
626                 echo "Passwd ExOp failed ($RC)!"
627                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
628                 exit $RC
629         ;;
630 esac
631
632 echo "Binding with newly changed password to database \"$BASEDN\"..."
633 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
634         -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
635         -w meta >> $TESTOUT 2>&1
636 RC=$?
637 #if test $RC != 0 ; then
638 #       echo "WhoAmI failed ($RC)!"
639 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
640 #       exit $RC
641 #fi
642 case $RC in 
643         0)
644         ;;
645         51)
646                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
647         ;;
648         *)
649                 echo "WhoAmI failed ($RC)!"
650                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
651                 exit $RC
652         ;;
653 esac
654
655 echo "Binding with incorrect password to database \"$BASEDN\"..."
656 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
657         -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
658         -w bogus >> $TESTOUT 2>&1
659 RC=$?
660 #if test $RC != 0 ; then
661 #       echo "WhoAmI failed ($RC)!"
662 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
663 #       exit $RC
664 #fi
665 case $RC in 
666         0)
667                 echo "WhoAmI should have failed ($RC)!"
668                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
669                 exit -1
670         ;;
671         51)
672                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
673         ;;
674         *)
675         ;;
676 esac
677
678 echo "Binding with non-existing user to database \"$BASEDN\"..."
679 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
680         -D "cn=Non-existing User,ou=Same as above,ou=Meta,$BASEDN" \
681         -w bogus >> $TESTOUT 2>&1
682 RC=$?
683 #if test $RC != 0 ; then
684 #       echo "WhoAmI failed ($RC)!"
685 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
686 #       exit $RC
687 #fi
688 case $RC in 
689         0)
690                 echo "WhoAmI should have failed ($RC)!"
691                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
692                 exit -1
693         ;;
694         51)
695                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
696         ;;
697         *)
698         ;;
699 esac
700
701 echo "Comparing to database \"$BASEDN\"..."
702 $LDAPCOMPARE -h $LOCALHOST -p $PORT3 \
703         "cn=Another Added Group,ou=Groups,$BASEDN" \
704         "member:cn=Added Group,ou=Groups,$BASEDN" >> $TESTOUT 2>&1
705 RC=$?
706 #if test $RC != 6 ; then
707 #       echo "Compare failed ($RC)!"
708 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
709 #       exit -1
710 #fi
711 case $RC in 
712         6)
713         ;;
714         51)
715                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
716         ;;
717         *)
718                 echo "Compare failed ($RC)!"
719                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
720                 exit $RC
721         ;;
722 esac
723
724 test $KILLSERVERS != no && kill -HUP $KILLPIDS
725
726 echo ">>>>> Test succeeded"
727
728 test $KILLSERVERS != no && wait
729
730 exit 0