]> git.sur5r.net Git - openldap/blob - tests/scripts/test035-meta
Happy new year!
[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 echo "Checking server-enforced size limit..."
475 echo "# Checking server-enforced size limit..." >> $SEARCHOUT
476 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 \
477         -D "cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" -w bjorn \
478         -b "$BASEDN" "(objectClass=*)" 1.1 \
479         >> $TESTOUT 2>&1
480 RC=$?
481 case $RC in 
482         0)
483                 echo "Search should have failed ($RC)!"
484                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
485                 exit -1
486         ;;
487         4)
488         ;;
489         *)
490                 echo "Search failed ($RC)!"
491                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
492                 exit $RC
493         ;;
494 esac
495
496 echo "Checking client-requested size limit..."
497 echo "# Checking client-requested size limit..." >> $SEARCHOUT
498 $LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 \
499         -D "cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" -w bjorn \
500         -b "$BASEDN" -z 2 "(objectClass=*)" 1.1 \
501         >> $TESTOUT 2>&1
502 RC=$?
503 case $RC in 
504         0)
505                 echo "Search should have failed ($RC)!"
506                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
507                 exit -1
508         ;;
509         4)
510         ;;
511         *)
512                 echo "Search failed ($RC)!"
513                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
514                 exit $RC
515         ;;
516 esac
517
518 echo "Filtering ldapsearch results..."
519 . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
520 echo "Filtering original ldif used to create database..."
521 . $LDIFFILTER < $METAOUT > $LDIFFLT
522 echo "Comparing filter output..."
523 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
524         
525 if test $? != 0 ; then
526         echo "comparison failed - meta search/modification didn't succeed"
527         test $KILLSERVERS != no && kill -HUP $KILLPIDS
528         exit 1
529 fi
530
531 BASEDN="o=Example,c=US"
532 echo "Changing password to database \"$BASEDN\"..."
533 $LDAPPASSWD -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \
534         -s $PASSWD "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \
535         >> $TESTOUT 2>&1
536 RC=$?
537 #if test $RC != 0 ; then
538 #       echo "Passwd ExOp failed ($RC)!"
539 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
540 #       exit $RC
541 #fi
542 case $RC in 
543         0)
544         ;;
545         51)
546                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
547                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
548                 exit 0
549         ;;
550         *)
551                 echo "Passwd ExOp failed ($RC)!"
552                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
553                 exit $RC
554         ;;
555 esac
556
557 echo "Binding with newly changed password to database \"$BASEDN\"..."
558 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
559         -D "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \
560         -w $PASSWD >> $TESTOUT 2>&1
561 RC=$?
562 #if test $RC != 0 ; then
563 #       echo "WhoAmI failed ($RC)!"
564 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
565 #       exit $RC
566 #fi
567 case $RC in 
568         0)
569         ;;
570         51)
571                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
572         ;;
573         *)
574                 echo "WhoAmI failed ($RC)!"
575                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
576                 exit $RC
577         ;;
578 esac
579
580 echo "Binding as newly added user to database \"$BASEDN\"..."
581 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
582         -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
583         -w $PASSWD >> $TESTOUT 2>&1
584 RC=$?
585 #if test $RC != 0 ; then
586 #       echo "WhoAmI failed ($RC)!"
587 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
588 #       exit $RC
589 #fi
590 case $RC in 
591         0)
592         ;;
593         51)
594                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
595         ;;
596         *)
597                 echo "WhoAmI failed ($RC)!"
598                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
599                 exit $RC
600         ;;
601 esac
602
603 echo "Changing password to database \"$BASEDN\"..."
604 $LDAPPASSWD -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \
605         -s meta "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
606         >> $TESTOUT 2>&1
607 RC=$?
608 #if test $RC != 0 ; then
609 #       echo "Passwd ExOp failed ($RC)!"
610 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
611 #       exit $RC
612 #fi
613 case $RC in 
614         0)
615         ;;
616         51)
617                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
618                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
619                 exit 0
620         ;;
621         *)
622                 echo "Passwd ExOp failed ($RC)!"
623                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
624                 exit $RC
625         ;;
626 esac
627
628 echo "Binding with newly changed password to database \"$BASEDN\"..."
629 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
630         -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
631         -w meta >> $TESTOUT 2>&1
632 RC=$?
633 #if test $RC != 0 ; then
634 #       echo "WhoAmI failed ($RC)!"
635 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
636 #       exit $RC
637 #fi
638 case $RC in 
639         0)
640         ;;
641         51)
642                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
643         ;;
644         *)
645                 echo "WhoAmI failed ($RC)!"
646                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
647                 exit $RC
648         ;;
649 esac
650
651 echo "Binding with incorrect password to database \"$BASEDN\"..."
652 $LDAPWHOAMI -h $LOCALHOST -p $PORT3 \
653         -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \
654         -w bogus >> $TESTOUT 2>&1
655 RC=$?
656 #if test $RC != 0 ; then
657 #       echo "WhoAmI failed ($RC)!"
658 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
659 #       exit $RC
660 #fi
661 case $RC in 
662         0)
663                 echo "WhoAmI should have failed ($RC)!"
664                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
665                 exit -1
666         ;;
667         51)
668                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
669         ;;
670         *)
671         ;;
672 esac
673
674 echo "Comparing to database \"$BASEDN\"..."
675 $LDAPCOMPARE -h $LOCALHOST -p $PORT3 \
676         "cn=Another Added Group,ou=Groups,$BASEDN" \
677         "member:cn=Added Group,ou=Groups,$BASEDN" >> $TESTOUT 2>&1
678 RC=$?
679 #if test $RC != 6 ; then
680 #       echo "Compare failed ($RC)!"
681 #       test $KILLSERVERS != no && kill -HUP $KILLPIDS
682 #       exit -1
683 #fi
684 case $RC in 
685         6)
686         ;;
687         51)
688                 echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
689         ;;
690         *)
691                 echo "Compare failed ($RC)!"
692                 test $KILLSERVERS != no && kill -HUP $KILLPIDS
693                 exit $RC
694         ;;
695 esac
696
697 test $KILLSERVERS != no && kill -HUP $KILLPIDS
698
699 echo ">>>>> Test succeeded"
700 exit 0
701