~ttx/openldap/lucid-gssapi-495418

« back to all changes in this revision

Viewing changes to tests/scripts/test035-meta

  • Committer: Bazaar Package Importer
  • Author(s): Mathias Gug
  • Date: 2008-07-10 14:45:49 UTC
  • Revision ID: james.westby@ubuntu.com-20080710144549-wck73med0e72gfyo
Tags: upstream-2.4.10
ImportĀ upstreamĀ versionĀ 2.4.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
# $OpenLDAP: pkg/ldap/tests/scripts/test035-meta,v 1.14.2.4 2008/02/11 23:26:51 kurt Exp $
 
3
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
 
4
##
 
5
## Copyright 1998-2008 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 < $METACONF1 > $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