test052-memberof revision 1.1.1.4 1 1.1 lukem #! /bin/sh
2 1.1.1.4 tron # $OpenLDAP$
3 1.1 lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 1.1 lukem ##
5 1.1.1.4 tron ## Copyright 1998-2014 The OpenLDAP Foundation.
6 1.1 lukem ## All rights reserved.
7 1.1 lukem ##
8 1.1 lukem ## Redistribution and use in source and binary forms, with or without
9 1.1 lukem ## modification, are permitted only as authorized by the OpenLDAP
10 1.1 lukem ## Public License.
11 1.1 lukem ##
12 1.1 lukem ## A copy of this license is available in the file LICENSE in the
13 1.1 lukem ## top-level directory of the distribution or, alternatively, at
14 1.1 lukem ## <http://www.OpenLDAP.org/license.html>.
15 1.1 lukem
16 1.1 lukem echo "running defines.sh"
17 1.1 lukem . $SRCDIR/scripts/defines.sh
18 1.1 lukem
19 1.1 lukem if test $MEMBEROF = memberofno; then
20 1.1 lukem echo "Memberof overlay not available, test skipped"
21 1.1 lukem exit 0
22 1.1 lukem fi
23 1.1 lukem
24 1.1 lukem mkdir -p $TESTDIR $DBDIR1 $TESTDIR/confdir
25 1.1 lukem
26 1.1 lukem $SLAPPASSWD -g -n >$CONFIGPWF
27 1.1 lukem echo "rootpw `$SLAPPASSWD -T $CONFIGPWF`" >$TESTDIR/configpw.conf
28 1.1 lukem
29 1.1 lukem echo "Starting slapd on TCP/IP port $PORT1..."
30 1.1 lukem . $CONFFILTER $BACKEND $MONITORDB < $NAKEDCONF > $CONF1
31 1.1 lukem $SLAPD -f $CONF1 -F $TESTDIR/confdir -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
32 1.1 lukem PID=$!
33 1.1 lukem if test $WAIT != 0 ; then
34 1.1 lukem echo PID $PID
35 1.1 lukem read foo
36 1.1 lukem fi
37 1.1 lukem KILLPIDS="$PID"
38 1.1 lukem
39 1.1 lukem sleep 1
40 1.1 lukem for i in 0 1 2 3 4 5; do
41 1.1 lukem $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
42 1.1 lukem 'objectclass=*' > /dev/null 2>&1
43 1.1 lukem RC=$?
44 1.1 lukem if test $RC = 0 ; then
45 1.1 lukem break
46 1.1 lukem fi
47 1.1 lukem echo "Waiting 5 seconds for slapd to start..."
48 1.1 lukem sleep 5
49 1.1 lukem done
50 1.1 lukem if test $RC != 0 ; then
51 1.1 lukem echo "ldapsearch failed ($RC)!"
52 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
53 1.1 lukem exit $RC
54 1.1 lukem fi
55 1.1 lukem
56 1.1 lukem cat /dev/null > $TESTOUT
57 1.1 lukem
58 1.1 lukem if [ "$MEMBEROF" = memberofmod ]; then
59 1.1.1.4 tron echo "Inserting memberof overlay on provider..."
60 1.1 lukem $LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF > $TESTOUT 2>&1
61 1.1 lukem dn: cn=module,cn=config
62 1.1 lukem objectClass: olcModuleList
63 1.1 lukem cn: module
64 1.1 lukem olcModulePath: ../servers/slapd/overlays
65 1.1 lukem olcModuleLoad: memberof.la
66 1.1 lukem EOF
67 1.1 lukem RC=$?
68 1.1 lukem if test $RC != 0 ; then
69 1.1 lukem echo "ldapadd failed for moduleLoad ($RC)!"
70 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
71 1.1 lukem exit $RC
72 1.1 lukem fi
73 1.1 lukem fi
74 1.1 lukem
75 1.1.1.4 tron indexInclude="" mainInclude="" bdbInclude="# " nullExclude=""
76 1.1.1.4 tron test $INDEXDB = indexdb || indexInclude="# "
77 1.1.1.4 tron test $MAINDB = maindb || mainInclude="# "
78 1.1.1.3 adam case $BACKEND in
79 1.1.1.3 adam bdb | hdb) bdbInclude="" ;;
80 1.1.1.3 adam null) nullExclude="# " ;;
81 1.1.1.3 adam esac
82 1.1.1.3 adam
83 1.1 lukem echo "Running ldapadd to build slapd config database..."
84 1.1 lukem $LDAPADD -h $LOCALHOST -p $PORT1 -D 'cn=config' -w `cat $CONFIGPWF` \
85 1.1 lukem >> $TESTOUT 2>&1 <<EOF
86 1.1.1.2 lukem dn: cn=symas group example,cn=schema,cn=config
87 1.1.1.2 lukem objectClass: olcSchemaConfig
88 1.1.1.2 lukem cn: symas group example
89 1.1.1.2 lukem olcAttributeTypes: ( 1.3.6.1.4.1.4754.31.1.1
90 1.1.1.2 lukem NAME 'memberA' SUP distinguishedName )
91 1.1.1.2 lukem olcAttributeTypes: ( 1.3.6.1.4.1.4754.31.1.2
92 1.1.1.2 lukem NAME 'memberOfA' SUP distinguishedName )
93 1.1.1.2 lukem olcAttributeTypes: ( 1.3.6.1.4.1.4754.31.1.3
94 1.1.1.2 lukem NAME 'memberB' SUP distinguishedName )
95 1.1.1.2 lukem olcAttributeTypes: ( 1.3.6.1.4.1.4754.31.1.4
96 1.1.1.2 lukem NAME 'memberOfB' SUP distinguishedName )
97 1.1.1.2 lukem olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.1
98 1.1.1.2 lukem NAME 'groupA' SUP top STRUCTURAL MUST cn MAY memberA )
99 1.1.1.2 lukem olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.2
100 1.1.1.2 lukem NAME 'groupMemberA' SUP top AUXILIARY MAY memberOfA )
101 1.1.1.2 lukem olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.3
102 1.1.1.2 lukem NAME 'groupB' SUP top STRUCTURAL MUST cn MAY memberB )
103 1.1.1.2 lukem olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.4
104 1.1.1.2 lukem NAME 'groupMemberB' SUP top AUXILIARY MAY memberOfB )
105 1.1.1.2 lukem
106 1.1 lukem dn: olcDatabase={1}$BACKEND,cn=config
107 1.1 lukem objectClass: olcDatabaseConfig
108 1.1.1.3 adam ${nullExclude}objectClass: olc${BACKEND}Config
109 1.1 lukem olcDatabase: {1}$BACKEND
110 1.1 lukem olcSuffix: $BASEDN
111 1.1 lukem olcRootDN: cn=Manager,$BASEDN
112 1.1 lukem olcRootPW:: c2VjcmV0
113 1.1 lukem olcMonitoring: TRUE
114 1.1.1.3 adam ${nullExclude}olcDbDirectory: $TESTDIR/db.1.a/
115 1.1.1.3 adam ${bdbInclude}olcDbCacheSize: 1000
116 1.1.1.4 tron ${indexInclude}olcDbIndex: objectClass eq
117 1.1.1.4 tron ${indexInclude}olcDbIndex: cn pres,eq,sub
118 1.1.1.4 tron ${indexInclude}olcDbIndex: uid pres,eq,sub
119 1.1.1.4 tron ${indexInclude}olcDbIndex: sn pres,eq,sub
120 1.1.1.4 tron ${mainInclude}olcDbMode: 384"
121 1.1 lukem
122 1.1 lukem dn: olcOverlay={0}memberof,olcDatabase={1}$BACKEND,cn=config
123 1.1 lukem objectClass: olcOverlayConfig
124 1.1 lukem objectClass: olcMemberOf
125 1.1 lukem olcOverlay: {0}memberof
126 1.1 lukem olcMemberOfRefInt: TRUE
127 1.1 lukem olcMemberOfGroupOC: groupOfNames
128 1.1 lukem olcMemberOfMemberAD: member
129 1.1 lukem olcMemberOfMemberOfAD: memberOf
130 1.1.1.2 lukem
131 1.1.1.2 lukem dn: olcOverlay={1}memberof,olcDatabase={1}$BACKEND,cn=config
132 1.1.1.2 lukem objectClass: olcOverlayConfig
133 1.1.1.2 lukem objectClass: olcMemberOf
134 1.1.1.2 lukem olcOverlay: {1}memberof
135 1.1.1.2 lukem olcMemberOfRefInt: TRUE
136 1.1.1.2 lukem olcMemberOfGroupOC: groupA
137 1.1.1.2 lukem olcMemberOfMemberAD: memberA
138 1.1.1.2 lukem olcMemberOfMemberOfAD: memberOfA
139 1.1.1.2 lukem
140 1.1.1.2 lukem dn: olcOverlay={2}memberof,olcDatabase={1}$BACKEND,cn=config
141 1.1.1.2 lukem objectClass: olcOverlayConfig
142 1.1.1.2 lukem objectClass: olcMemberOf
143 1.1.1.2 lukem olcOverlay: {2}memberof
144 1.1.1.2 lukem olcMemberOfRefInt: TRUE
145 1.1.1.2 lukem olcMemberOfGroupOC: groupB
146 1.1.1.2 lukem olcMemberOfMemberAD: memberB
147 1.1.1.2 lukem olcMemberOfMemberOfAD: memberOfB
148 1.1.1.2 lukem
149 1.1 lukem EOF
150 1.1 lukem RC=$?
151 1.1 lukem if test $RC != 0 ; then
152 1.1 lukem echo "ldapadd failed ($RC)!"
153 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
154 1.1 lukem exit $RC
155 1.1 lukem fi
156 1.1 lukem
157 1.1 lukem echo "Running ldapadd to build slapd database..."
158 1.1 lukem $LDAPADD -h $LOCALHOST -p $PORT1 \
159 1.1 lukem -D "cn=Manager,$BASEDN" -w secret \
160 1.1 lukem >> $TESTOUT 2>&1 << EOF
161 1.1 lukem dn: $BASEDN
162 1.1 lukem objectClass: organization
163 1.1 lukem objectClass: dcObject
164 1.1 lukem o: Example, Inc.
165 1.1 lukem dc: example
166 1.1 lukem
167 1.1 lukem dn: ou=People,$BASEDN
168 1.1 lukem objectClass: organizationalUnit
169 1.1 lukem ou: People
170 1.1 lukem
171 1.1 lukem dn: ou=Groups,$BASEDN
172 1.1 lukem objectClass: organizationalUnit
173 1.1 lukem ou: Groups
174 1.1 lukem
175 1.1 lukem dn: cn=Roger Rabbit,ou=People,$BASEDN
176 1.1 lukem objectClass: inetOrgPerson
177 1.1 lukem cn: Roger Rabbit
178 1.1 lukem sn: Rabbit
179 1.1 lukem
180 1.1 lukem dn: cn=Baby Herman,ou=People,$BASEDN
181 1.1 lukem objectClass: inetOrgPerson
182 1.1 lukem cn: Baby Herman
183 1.1 lukem sn: Herman
184 1.1 lukem
185 1.1 lukem dn: cn=Cartoonia,ou=Groups,$BASEDN
186 1.1 lukem objectClass: groupOfNames
187 1.1 lukem cn: Cartoonia
188 1.1 lukem member: cn=Roger Rabbit,ou=People,$BASEDN
189 1.1 lukem member: cn=Baby Herman,ou=People,$BASEDN
190 1.1 lukem EOF
191 1.1 lukem RC=$?
192 1.1 lukem if test $RC != 0 ; then
193 1.1 lukem echo "ldapadd failed ($RC)!"
194 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
195 1.1 lukem exit $RC
196 1.1 lukem fi
197 1.1 lukem
198 1.1 lukem echo "Search the entire database..."
199 1.1 lukem echo "# Search the entire database..." >> $SEARCHOUT
200 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
201 1.1 lukem '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
202 1.1 lukem RC=$?
203 1.1 lukem if test $RC != 0 ; then
204 1.1 lukem echo "ldapsearch failed ($RC)!"
205 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
206 1.1 lukem exit $RC
207 1.1 lukem fi
208 1.1 lukem
209 1.1 lukem echo "Running ldapmodify to add a member..."
210 1.1 lukem $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
211 1.1 lukem -D "cn=Manager,$BASEDN" -w secret \
212 1.1 lukem >> $TESTOUT 2>&1 << EOF
213 1.1 lukem dn: cn=Jessica Rabbit,ou=People,$BASEDN
214 1.1 lukem changetype: add
215 1.1 lukem objectClass: inetOrgPerson
216 1.1 lukem cn: Jessica Rabbit
217 1.1 lukem sn: Rabbit
218 1.1 lukem
219 1.1 lukem dn: cn=Cartoonia,ou=Groups,$BASEDN
220 1.1 lukem changetype: modify
221 1.1 lukem add: member
222 1.1 lukem member: cn=Jessica Rabbit,ou=People,$BASEDN
223 1.1 lukem EOF
224 1.1 lukem
225 1.1 lukem echo "Re-search the entire database..."
226 1.1.1.4 tron echo "# Re-search the entire database after adding Jessica Rabbit and Cartoonia..." >> $SEARCHOUT
227 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
228 1.1 lukem '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
229 1.1 lukem RC=$?
230 1.1 lukem if test $RC != 0 ; then
231 1.1 lukem echo "ldapsearch failed ($RC)!"
232 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
233 1.1 lukem exit $RC
234 1.1 lukem fi
235 1.1 lukem
236 1.1.1.4 tron echo "Running ldapmodify to rename a member..."
237 1.1.1.4 tron $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
238 1.1.1.4 tron -D "cn=Manager,$BASEDN" -w secret \
239 1.1.1.4 tron >> $TESTOUT 2>&1 << EOF
240 1.1.1.4 tron dn: cn=Baby Herman,ou=People,$BASEDN
241 1.1.1.4 tron changetype: modrdn
242 1.1.1.4 tron newrdn: cn=Baby Herman Jr
243 1.1.1.4 tron deleteoldrdn: 1
244 1.1.1.4 tron EOF
245 1.1.1.4 tron
246 1.1.1.4 tron echo "Re-search the entire database..."
247 1.1.1.4 tron echo "# Re-search the entire database after renaming Baby Herman..." >> $SEARCHOUT
248 1.1.1.4 tron $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
249 1.1.1.4 tron '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
250 1.1.1.4 tron RC=$?
251 1.1.1.4 tron if test $RC != 0 ; then
252 1.1.1.4 tron echo "ldapsearch failed ($RC)!"
253 1.1.1.4 tron test $KILLSERVERS != no && kill -HUP $KILLPIDS
254 1.1.1.4 tron exit $RC
255 1.1.1.4 tron fi
256 1.1.1.4 tron
257 1.1.1.4 tron echo "Running ldapmodify to rename a group..."
258 1.1 lukem $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
259 1.1 lukem -D "cn=Manager,$BASEDN" -w secret \
260 1.1 lukem >> $TESTOUT 2>&1 << EOF
261 1.1 lukem dn: cn=Cartoonia,ou=Groups,$BASEDN
262 1.1.1.4 tron changetype: modrdn
263 1.1.1.4 tron newrdn: cn=Toon Town
264 1.1.1.4 tron deleteoldrdn: 1
265 1.1.1.4 tron EOF
266 1.1.1.4 tron
267 1.1.1.4 tron echo "Re-search the entire database..."
268 1.1.1.4 tron echo "# Re-search the entire database after renaming Cartoonia..." >> $SEARCHOUT
269 1.1.1.4 tron $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
270 1.1.1.4 tron '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
271 1.1.1.4 tron RC=$?
272 1.1.1.4 tron if test $RC != 0 ; then
273 1.1.1.4 tron echo "ldapsearch failed ($RC)!"
274 1.1.1.4 tron test $KILLSERVERS != no && kill -HUP $KILLPIDS
275 1.1.1.4 tron exit $RC
276 1.1.1.4 tron fi
277 1.1.1.4 tron
278 1.1.1.4 tron echo "Running ldapmodify to add self..."
279 1.1.1.4 tron $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
280 1.1.1.4 tron -D "cn=Manager,$BASEDN" -w secret \
281 1.1.1.4 tron >> $TESTOUT 2>&1 << EOF
282 1.1.1.4 tron dn: cn=Toon Town,ou=Groups,$BASEDN
283 1.1 lukem changetype: modify
284 1.1 lukem add: member
285 1.1.1.4 tron member: cn=Toon Town,ou=Groups,$BASEDN
286 1.1 lukem EOF
287 1.1 lukem
288 1.1 lukem echo "Re-search the entire database..."
289 1.1.1.4 tron echo "# Re-search the entire database after adding Toon Town to self..." >> $SEARCHOUT
290 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
291 1.1 lukem '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
292 1.1 lukem RC=$?
293 1.1 lukem if test $RC != 0 ; then
294 1.1 lukem echo "ldapsearch failed ($RC)!"
295 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
296 1.1 lukem exit $RC
297 1.1 lukem fi
298 1.1 lukem
299 1.1 lukem echo "Running ldapdelete to remove a member..."
300 1.1 lukem $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
301 1.1 lukem -D "cn=Manager,$BASEDN" -w secret \
302 1.1 lukem >> $TESTOUT 2>&1 << EOF
303 1.1.1.4 tron dn: cn=Baby Herman Jr,ou=People,$BASEDN
304 1.1.1.4 tron changetype: delete
305 1.1.1.4 tron EOF
306 1.1.1.4 tron
307 1.1.1.4 tron echo "Re-search the entire database..."
308 1.1.1.4 tron echo "# Re-search the entire database after deleting Baby Herman..." >> $SEARCHOUT
309 1.1.1.4 tron $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
310 1.1.1.4 tron '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
311 1.1.1.4 tron RC=$?
312 1.1.1.4 tron if test $RC != 0 ; then
313 1.1.1.4 tron echo "ldapsearch failed ($RC)!"
314 1.1.1.4 tron test $KILLSERVERS != no && kill -HUP $KILLPIDS
315 1.1.1.4 tron exit $RC
316 1.1.1.4 tron fi
317 1.1.1.4 tron
318 1.1.1.4 tron echo "Running ldapdelete to remove a group..."
319 1.1.1.4 tron $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
320 1.1.1.4 tron -D "cn=Manager,$BASEDN" -w secret \
321 1.1.1.4 tron >> $TESTOUT 2>&1 << EOF
322 1.1.1.4 tron dn: cn=Toon Town,ou=Groups,$BASEDN
323 1.1 lukem changetype: delete
324 1.1 lukem EOF
325 1.1 lukem
326 1.1 lukem echo "Re-search the entire database..."
327 1.1.1.4 tron echo "# Re-search the entire database after deleting Toon Town..." >> $SEARCHOUT
328 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
329 1.1 lukem '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
330 1.1 lukem RC=$?
331 1.1 lukem if test $RC != 0 ; then
332 1.1 lukem echo "ldapsearch failed ($RC)!"
333 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
334 1.1 lukem exit $RC
335 1.1 lukem fi
336 1.1 lukem
337 1.1.1.2 lukem echo "Adding groups with MAY member type schemas..."
338 1.1.1.2 lukem $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
339 1.1.1.2 lukem -D "cn=Manager,$BASEDN" -w secret \
340 1.1.1.2 lukem >> $TESTOUT 2>&1 <<EOF
341 1.1.1.2 lukem dn: cn=Roger Rabbit,ou=People,$BASEDN
342 1.1.1.2 lukem changetype: delete
343 1.1.1.2 lukem
344 1.1.1.2 lukem dn: cn=Jessica Rabbit,ou=People,$BASEDN
345 1.1.1.2 lukem changetype: delete
346 1.1.1.2 lukem
347 1.1.1.2 lukem dn: cn=person1,ou=People,$BASEDN
348 1.1.1.2 lukem changetype: add
349 1.1.1.2 lukem objectClass: person
350 1.1.1.2 lukem objectClass: groupMemberA
351 1.1.1.2 lukem objectClass: groupMemberB
352 1.1.1.2 lukem cn: person1
353 1.1.1.2 lukem sn: person1
354 1.1.1.2 lukem
355 1.1.1.2 lukem dn: cn=person2,ou=People,$BASEDN
356 1.1.1.2 lukem changetype: add
357 1.1.1.2 lukem objectClass: person
358 1.1.1.2 lukem objectClass: groupMemberA
359 1.1.1.2 lukem objectClass: groupMemberB
360 1.1.1.2 lukem cn: person2
361 1.1.1.2 lukem sn: person2
362 1.1.1.2 lukem
363 1.1.1.2 lukem dn: cn=group1,ou=Groups,$BASEDN
364 1.1.1.2 lukem changetype: add
365 1.1.1.2 lukem objectclass: groupA
366 1.1.1.2 lukem cn: group1
367 1.1.1.2 lukem memberA: cn=person1,ou=People,$BASEDN
368 1.1.1.2 lukem memberA: cn=person2,ou=People,$BASEDN
369 1.1.1.2 lukem
370 1.1.1.2 lukem dn: cn=group2,ou=Groups,$BASEDN
371 1.1.1.2 lukem changetype: add
372 1.1.1.2 lukem objectclass: groupB
373 1.1.1.2 lukem cn: group2
374 1.1.1.2 lukem memberB: cn=person1,ou=People,$BASEDN
375 1.1.1.2 lukem memberB: cn=person2,ou=People,$BASEDN
376 1.1.1.2 lukem
377 1.1.1.2 lukem dn: cn=group1,ou=Groups,$BASEDN
378 1.1.1.2 lukem changetype: modify
379 1.1.1.2 lukem delete: memberA
380 1.1.1.2 lukem
381 1.1.1.2 lukem EOF
382 1.1.1.2 lukem
383 1.1.1.2 lukem echo "Re-search the entire database..."
384 1.1.1.4 tron echo "# Re-search the entire database after adding groups with MAY member type schemas..." >> $SEARCHOUT
385 1.1.1.2 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
386 1.1.1.2 lukem '(objectClass=*)' '*' memberOf >> $SEARCHOUT 2>&1
387 1.1.1.2 lukem RC=$?
388 1.1.1.2 lukem if test $RC != 0 ; then
389 1.1.1.2 lukem echo "ldapsearch failed ($RC)!"
390 1.1.1.2 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
391 1.1.1.2 lukem exit $RC
392 1.1.1.2 lukem fi
393 1.1.1.2 lukem
394 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
395 1.1 lukem
396 1.1 lukem LDIF=$MEMBEROFOUT
397 1.1 lukem
398 1.1 lukem echo "Filtering ldapsearch results..."
399 1.1.1.3 adam $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
400 1.1 lukem echo "Filtering original ldif used to create database..."
401 1.1.1.3 adam $LDIFFILTER < $LDIF > $LDIFFLT
402 1.1 lukem echo "Comparing filter output..."
403 1.1 lukem $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
404 1.1 lukem
405 1.1 lukem if test $? != 0 ; then
406 1.1 lukem echo "Comparison failed"
407 1.1 lukem exit 1
408 1.1 lukem fi
409 1.1 lukem
410 1.1 lukem echo ">>>>> Test succeeded"
411 1.1 lukem
412 1.1 lukem test $KILLSERVERS != no && wait
413 1.1 lukem
414 1.1 lukem exit 0
415