sql-test900-write revision 1.1.1.10 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.10 christos ## Copyright 1998-2024 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 $BACKSQL = "sqlno" ; then
20 1.1 lukem echo "SQL backend not available, test skipped"
21 1.1 lukem exit 0
22 1.1 lukem fi
23 1.1 lukem
24 1.1 lukem if test $RDBMS = "rdbmsno" ; then
25 1.1 lukem echo "SQL test not requested, test skipped"
26 1.1 lukem exit 0
27 1.1 lukem fi
28 1.1 lukem
29 1.1 lukem if test "${RDBMSWRITE}" != "yes"; then
30 1.1 lukem echo "write test disabled for ${RDBMS}; set SLAPD_USE_SQLWRITE=yes to enable"
31 1.1 lukem exit 0
32 1.1 lukem fi
33 1.1 lukem
34 1.1 lukem mkdir -p $TESTDIR
35 1.1 lukem
36 1.1 lukem echo "Starting slapd on TCP/IP port $PORT1..."
37 1.1.1.9 christos . $CONFFILTER $BACKEND < $SQLCONF > $CONF1
38 1.1.1.9 christos $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
39 1.1 lukem PID=$!
40 1.1 lukem if test $WAIT != 0 ; then
41 1.1 lukem echo PID $PID
42 1.1 lukem read foo
43 1.1 lukem fi
44 1.1 lukem KILLPIDS="$PID"
45 1.1 lukem
46 1.1 lukem echo "Testing SQL backend write operations..."
47 1.1 lukem for i in 0 1 2 3 4 5; do
48 1.1.1.9 christos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
49 1.1 lukem 'objectclass=*' > /dev/null 2>&1
50 1.1 lukem RC=$?
51 1.1 lukem if test $RC = 0 ; then
52 1.1 lukem break
53 1.1 lukem fi
54 1.1 lukem echo "Waiting 5 seconds for slapd to start..."
55 1.1 lukem sleep 5
56 1.1 lukem done
57 1.1 lukem
58 1.1 lukem if test $RC != 0 ; then
59 1.1 lukem echo "ldapsearch failed ($RC)!"
60 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
61 1.1 lukem exit $RC
62 1.1 lukem fi
63 1.1 lukem
64 1.1 lukem cat /dev/null > $SEARCHOUT
65 1.1 lukem
66 1.1 lukem BASEDN="dc=example,dc=com"
67 1.1 lukem
68 1.1 lukem echo "Using ldapsearch to retrieve all the entries..."
69 1.1 lukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
70 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
71 1.1 lukem "objectClass=*" >> $SEARCHOUT 2>&1
72 1.1 lukem
73 1.1 lukem RC=$?
74 1.1 lukem if test $RC != 0 ; then
75 1.1 lukem echo "ldapsearch failed ($RC)!"
76 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
77 1.1 lukem exit $RC
78 1.1 lukem fi
79 1.1 lukem
80 1.1 lukem case ${RDBMS} in
81 1.1 lukem # list here the RDBMSes whose mapping allows writes
82 1.1 lukem pgsql|ibmdb2)
83 1.1 lukem MANAGERDN="cn=Manager,${BASEDN}"
84 1.1 lukem echo "Testing add..."
85 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
86 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
87 1.1 lukem version: 1
88 1.1 lukem
89 1.1 lukem # Adding an organization...
90 1.1 lukem dn: o=An Org,${BASEDN}
91 1.1 lukem changetype: add
92 1.1 lukem objectClass: organization
93 1.1 lukem o: An Org
94 1.1 lukem
95 1.1 lukem # Adding an organization with an "auxiliary" objectClass..
96 1.1 lukem dn: dc=subnet,${BASEDN}
97 1.1 lukem changetype: add
98 1.1 lukem objectClass: organization
99 1.1 lukem objectClass: dcObject
100 1.1 lukem o: SubNet
101 1.1 lukem dc: subnet
102 1.1 lukem
103 1.1 lukem # Adding another organization with an "auxiliary" objectClass..
104 1.1 lukem dn: dc=subnet2,${BASEDN}
105 1.1 lukem changetype: add
106 1.1 lukem objectClass: organization
107 1.1 lukem objectClass: dcObject
108 1.1 lukem o: SubNet 2
109 1.1 lukem dc: subnet2
110 1.1 lukem
111 1.1 lukem # Adding a person...
112 1.1 lukem dn: cn=Lev Tolstoij,${BASEDN}
113 1.1 lukem changetype: add
114 1.1 lukem objectClass: inetOrgPerson
115 1.1 lukem cn: Lev Tolstoij
116 1.1 lukem sn: Tolstoij
117 1.1 lukem givenName: Lev
118 1.1 lukem telephoneNumber: +39 02 XXXX YYYY
119 1.1 lukem telephoneNumber: +39 02 XXXX ZZZZ
120 1.1 lukem userPassword: tanja
121 1.1 lukem
122 1.1 lukem # Adding a person with an "auxiliary" objectClass...
123 1.1 lukem dn: cn=Some One,${BASEDN}
124 1.1 lukem changetype: add
125 1.1 lukem objectClass: inetOrgPerson
126 1.1 lukem objectClass: simpleSecurityObject
127 1.1 lukem cn: Some One
128 1.1 lukem sn: One
129 1.1 lukem givenName: Some
130 1.1 lukem telephoneNumber: +1 800 900 1234
131 1.1 lukem telephoneNumber: +1 800 900 1235
132 1.1 lukem userPassword: someone
133 1.1 lukem
134 1.1 lukem # Adding a person in another subtree...
135 1.1 lukem dn: cn=SubNet User,dc=subnet,${BASEDN}
136 1.1 lukem changetype: add
137 1.1 lukem objectClass: inetOrgPerson
138 1.1 lukem cn: SubNet User
139 1.1 lukem sn: User
140 1.1 lukem givenName: SubNet
141 1.1 lukem
142 1.1 lukem # Adding a document...
143 1.1 lukem dn: documentTitle=War and Peace,${BASEDN}
144 1.1 lukem changetype: add
145 1.1 lukem objectClass: document
146 1.1 lukem description: Historical novel
147 1.1 lukem documentTitle: War and Peace
148 1.1 lukem documentAuthor: cn=Lev Tolstoij,dc=example,dc=com
149 1.1 lukem documentIdentifier: document 3
150 1.1 lukem EOMODS
151 1.1 lukem
152 1.1 lukem RC=$?
153 1.1 lukem if test $RC != 0 ; then
154 1.1 lukem echo "ldapmodify failed ($RC)!"
155 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
156 1.1 lukem exit $RC
157 1.1 lukem fi
158 1.1 lukem
159 1.1 lukem echo "Using ldapsearch to retrieve all the entries..."
160 1.1 lukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
161 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
162 1.1 lukem "objectClass=*" >> $SEARCHOUT 2>&1
163 1.1 lukem
164 1.1 lukem RC=$?
165 1.1 lukem if test $RC != 0 ; then
166 1.1 lukem echo "ldapsearch failed ($RC)!"
167 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
168 1.1 lukem exit $RC
169 1.1 lukem fi
170 1.1 lukem
171 1.1 lukem echo "Testing modify..."
172 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
173 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
174 1.1 lukem version: 1
175 1.1 lukem
176 1.1 lukem # Deleting all telephone numbers...
177 1.1 lukem dn: cn=Some One,${BASEDN}
178 1.1 lukem changetype: modify
179 1.1 lukem delete: telephoneNumber
180 1.1 lukem -
181 1.1 lukem
182 1.1 lukem # Adding a telephone number...
183 1.1 lukem dn: cn=Mitya Kovalev,${BASEDN}
184 1.1 lukem changetype: modify
185 1.1 lukem add: telephoneNumber
186 1.1 lukem telephoneNumber: +1 800 123 4567
187 1.1 lukem -
188 1.1 lukem
189 1.1 lukem # Deleting a specific telephone number and adding a new one...
190 1.1 lukem dn: cn=Lev Tolstoij,${BASEDN}
191 1.1 lukem changetype: modify
192 1.1 lukem delete: telephoneNumber
193 1.1 lukem telephoneNumber: +39 02 XXXX YYYY
194 1.1 lukem -
195 1.1 lukem add: telephoneNumber
196 1.1 lukem telephoneNumber: +39 333 ZZZ 1234
197 1.1 lukem -
198 1.1 lukem
199 1.1 lukem # Adding an author to a document...
200 1.1 lukem dn: documentTitle=book1,${BASEDN}
201 1.1 lukem changetype: modify
202 1.1 lukem add: documentAuthor
203 1.1 lukem documentAuthor: cn=Lev Tolstoij,${BASEDN}
204 1.1 lukem -
205 1.1 lukem
206 1.1 lukem # Adding an author to another document...
207 1.1 lukem dn: documentTitle=book2,${BASEDN}
208 1.1 lukem changetype: modify
209 1.1 lukem add: documentAuthor
210 1.1 lukem documentAuthor: cn=Lev Tolstoij,${BASEDN}
211 1.1 lukem -
212 1.1 lukem
213 1.1 lukem # Adding an "auxiliary" objectClass...
214 1.1 lukem dn: cn=Mitya Kovalev,${BASEDN}
215 1.1 lukem changetype: modify
216 1.1 lukem add: objectClass
217 1.1 lukem objectClass: simpleSecurityObject
218 1.1 lukem -
219 1.1 lukem
220 1.1 lukem # Deleting an "auxiliary" objectClass...
221 1.1 lukem dn: cn=Some One,${BASEDN}
222 1.1 lukem changetype: modify
223 1.1 lukem delete: objectClass
224 1.1 lukem objectClass: simpleSecurityObject
225 1.1 lukem -
226 1.1 lukem
227 1.1 lukem # Deleting userPasswords
228 1.1 lukem dn: cn=Lev Tolstoij,${BASEDN}
229 1.1 lukem changetype: modify
230 1.1 lukem delete: userPassword
231 1.1 lukem -
232 1.1 lukem EOMODS
233 1.1 lukem
234 1.1 lukem RC=$?
235 1.1 lukem if test $RC != 0 ; then
236 1.1 lukem echo "ldapmodify failed ($RC)!"
237 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
238 1.1 lukem exit $RC
239 1.1 lukem fi
240 1.1 lukem
241 1.1 lukem echo "Using ldapsearch to retrieve all the entries..."
242 1.1 lukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
243 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
244 1.1 lukem "objectClass=*" >> $SEARCHOUT 2>&1
245 1.1 lukem
246 1.1 lukem RC=$?
247 1.1 lukem if test $RC != 0 ; then
248 1.1 lukem echo "ldapsearch failed ($RC)!"
249 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
250 1.1 lukem exit $RC
251 1.1 lukem fi
252 1.1 lukem
253 1.1 lukem echo "Testing delete..."
254 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
255 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
256 1.1 lukem version: 1
257 1.1 lukem
258 1.1 lukem # Deleting a person...
259 1.1 lukem dn: cn=Torvlobnor Puzdoy,${BASEDN}
260 1.1 lukem changetype: delete
261 1.1 lukem
262 1.1 lukem # Deleting a document...
263 1.1 lukem dn: documentTitle=book1,${BASEDN}
264 1.1 lukem changetype: delete
265 1.1 lukem
266 1.1 lukem # Deleting an organization with an "auxiliary" objectClass...
267 1.1 lukem dn: dc=subnet2,${BASEDN}
268 1.1 lukem changetype: delete
269 1.1 lukem EOMODS
270 1.1 lukem
271 1.1 lukem RC=$?
272 1.1 lukem if test $RC != 0 ; then
273 1.1 lukem echo "ldapmodify failed ($RC)!"
274 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
275 1.1 lukem exit $RC
276 1.1 lukem fi
277 1.1 lukem
278 1.1 lukem echo "Using ldapsearch to retrieve all the entries..."
279 1.1 lukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
280 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
281 1.1 lukem "objectClass=*" >> $SEARCHOUT 2>&1
282 1.1 lukem
283 1.1 lukem RC=$?
284 1.1 lukem if test $RC != 0 ; then
285 1.1 lukem echo "ldapsearch failed ($RC)!"
286 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
287 1.1 lukem exit $RC
288 1.1 lukem fi
289 1.1 lukem
290 1.1 lukem echo "Testing rename..."
291 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
292 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
293 1.1 lukem version: 1
294 1.1 lukem
295 1.1 lukem # Renaming an organization...
296 1.1 lukem dn: o=An Org,${BASEDN}
297 1.1 lukem changetype: modrdn
298 1.1 lukem newrdn: o=Renamed Org
299 1.1 lukem deleteoldrdn: 1
300 1.1 lukem
301 1.1 lukem # Moving a person to another subtree...
302 1.1 lukem dn: cn=Lev Tolstoij,${BASEDN}
303 1.1 lukem changetype: modrdn
304 1.1 lukem newrdn: cn=Lev Tolstoij
305 1.1 lukem deleteoldrdn: 0
306 1.1 lukem newsuperior: dc=subnet,${BASEDN}
307 1.1 lukem
308 1.1 lukem # Renaming a book...
309 1.1 lukem dn: documentTitle=book2,${BASEDN}
310 1.1 lukem changetype: modrdn
311 1.1 lukem newrdn: documentTitle=Renamed Book
312 1.1 lukem deleteoldrdn: 1
313 1.1 lukem EOMODS
314 1.1 lukem
315 1.1 lukem RC=$?
316 1.1 lukem if test $RC != 0 ; then
317 1.1 lukem echo "ldapmodify failed ($RC)!"
318 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
319 1.1 lukem exit $RC
320 1.1 lukem fi
321 1.1 lukem
322 1.1 lukem echo "Using ldapsearch to retrieve all the entries..."
323 1.1 lukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
324 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
325 1.1 lukem "objectClass=*" >> $SEARCHOUT 2>&1
326 1.1 lukem
327 1.1 lukem RC=$?
328 1.1 lukem if test $RC != 0 ; then
329 1.1 lukem echo "ldapsearch failed ($RC)!"
330 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
331 1.1 lukem exit $RC
332 1.1 lukem fi
333 1.1 lukem
334 1.1 lukem echo "Adding a child to a referral (should fail)..."
335 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
336 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
337 1.1 lukem version: 1
338 1.1 lukem
339 1.1 lukem dn: cn=Should Fail,ou=Referral,${BASEDN}
340 1.1 lukem changetype: add
341 1.1 lukem objectClass: inetOrgPerson
342 1.1 lukem cn: Should Fail
343 1.1 lukem sn: Fail
344 1.1 lukem telephoneNumber: +39 02 23456789
345 1.1 lukem EOMODS
346 1.1 lukem
347 1.1 lukem RC=$?
348 1.1 lukem if test $RC = 0 ; then
349 1.1 lukem echo "ldapmodify should have failed ($RC)!"
350 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
351 1.1 lukem exit 1
352 1.1 lukem fi
353 1.1 lukem
354 1.1 lukem echo "Modifying a referral (should fail)..."
355 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
356 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
357 1.1 lukem version: 1
358 1.1 lukem
359 1.1 lukem dn: ou=Referral,${BASEDN}
360 1.1 lukem changetype: modify
361 1.1 lukem replace: ref
362 1.1 lukem ref: ldap://localhost:9009/
363 1.1 lukem -
364 1.1 lukem EOMODS
365 1.1 lukem
366 1.1 lukem RC=$?
367 1.1 lukem if test $RC = 0 ; then
368 1.1 lukem echo "ldapmodify should have failed ($RC)!"
369 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
370 1.1 lukem exit 1
371 1.1 lukem fi
372 1.1 lukem
373 1.1 lukem echo "Renaming a referral (should fail)..."
374 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
375 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
376 1.1 lukem version: 1
377 1.1 lukem
378 1.1 lukem dn: ou=Referral,${BASEDN}
379 1.1 lukem changetype: modrdn
380 1.1 lukem newrdn: ou=Renamed Referral
381 1.1 lukem deleteoldrdn: 1
382 1.1 lukem EOMODS
383 1.1 lukem
384 1.1 lukem RC=$?
385 1.1 lukem if test $RC = 0 ; then
386 1.1 lukem echo "ldapmodify should have failed ($RC)!"
387 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
388 1.1 lukem exit 1
389 1.1 lukem fi
390 1.1 lukem
391 1.1 lukem echo "Deleting a referral (should fail)..."
392 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
393 1.1.1.9 christos -H $URI1 >> $TESTOUT 2>&1 << EOMODS
394 1.1 lukem version: 1
395 1.1 lukem
396 1.1 lukem dn: ou=Referral,${BASEDN}
397 1.1 lukem changetype: delete
398 1.1 lukem EOMODS
399 1.1 lukem
400 1.1 lukem RC=$?
401 1.1 lukem if test $RC = 0 ; then
402 1.1 lukem echo "ldapmodify should have failed ($RC)!"
403 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
404 1.1 lukem exit 1
405 1.1 lukem fi
406 1.1 lukem
407 1.1 lukem echo "Adding a referral..."
408 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
409 1.1.1.9 christos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
410 1.1 lukem version: 1
411 1.1 lukem
412 1.1 lukem dn: ou=Another Referral,${BASEDN}
413 1.1 lukem changetype: add
414 1.1 lukem objectClass: referral
415 1.1 lukem objectClass: extensibleObject
416 1.1 lukem ou: Another Referral
417 1.1 lukem ref: ldap://localhost:9009/
418 1.1 lukem EOMODS
419 1.1 lukem
420 1.1 lukem RC=$?
421 1.1 lukem if test $RC != 0 ; then
422 1.1 lukem echo "ldapmodify failed ($RC)!"
423 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
424 1.1 lukem exit $RC
425 1.1 lukem fi
426 1.1 lukem
427 1.1 lukem echo "Modifying a referral with manageDSAit..."
428 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
429 1.1.1.9 christos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
430 1.1 lukem version: 1
431 1.1 lukem
432 1.1 lukem dn: ou=Referral,${BASEDN}
433 1.1 lukem changetype: modify
434 1.1 lukem replace: ref
435 1.1 lukem ref: ldap://localhost:9009/
436 1.1 lukem -
437 1.1 lukem EOMODS
438 1.1 lukem
439 1.1 lukem RC=$?
440 1.1 lukem if test $RC != 0 ; then
441 1.1 lukem echo "ldapmodify failed ($RC)!"
442 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
443 1.1 lukem exit $RC
444 1.1 lukem fi
445 1.1 lukem
446 1.1 lukem echo "Using ldapsearch to retrieve the modified entry..."
447 1.1 lukem echo "# Using ldapsearch to retrieve the modified entry..." >> $SEARCHOUT
448 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "ou=Referral,$BASEDN" -M \
449 1.1 lukem "objectClass=*" '*' ref >> $SEARCHOUT 2>&1
450 1.1 lukem
451 1.1 lukem RC=$?
452 1.1 lukem if test $RC != 0 ; then
453 1.1 lukem echo "ldapsearch failed ($RC)!"
454 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
455 1.1 lukem exit $RC
456 1.1 lukem fi
457 1.1 lukem
458 1.1 lukem echo "Renaming a referral with manageDSAit..."
459 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
460 1.1.1.9 christos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
461 1.1 lukem version: 1
462 1.1 lukem
463 1.1 lukem dn: ou=Referral,${BASEDN}
464 1.1 lukem changetype: modrdn
465 1.1 lukem newrdn: ou=Renamed Referral
466 1.1 lukem deleteoldrdn: 1
467 1.1 lukem EOMODS
468 1.1 lukem
469 1.1 lukem RC=$?
470 1.1 lukem if test $RC != 0 ; then
471 1.1 lukem echo "ldapmodify failed ($RC)!"
472 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
473 1.1 lukem exit $RC
474 1.1 lukem fi
475 1.1 lukem
476 1.1 lukem echo "Using ldapsearch to retrieve the renamed entry..."
477 1.1 lukem echo "# Using ldapsearch to retrieve the renamed entry..." >> $SEARCHOUT
478 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "ou=Renamed Referral,$BASEDN" -M \
479 1.1 lukem "objectClass=*" '*' ref >> $SEARCHOUT 2>&1
480 1.1 lukem
481 1.1 lukem RC=$?
482 1.1 lukem if test $RC != 0 ; then
483 1.1 lukem echo "ldapsearch failed ($RC)!"
484 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
485 1.1 lukem exit $RC
486 1.1 lukem fi
487 1.1 lukem
488 1.1 lukem echo "Deleting a referral with manageDSAit..."
489 1.1 lukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
490 1.1.1.9 christos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
491 1.1 lukem version: 1
492 1.1 lukem
493 1.1 lukem dn: ou=Renamed Referral,${BASEDN}
494 1.1 lukem changetype: delete
495 1.1 lukem EOMODS
496 1.1 lukem
497 1.1 lukem RC=$?
498 1.1 lukem if test $RC != 0 ; then
499 1.1 lukem echo "ldapmodify failed ($RC)!"
500 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
501 1.1 lukem exit $RC
502 1.1 lukem fi
503 1.1 lukem
504 1.1 lukem BINDDN="cn=Mitya Kovalev,${BASEDN}"
505 1.1 lukem BINDPW="mit"
506 1.1 lukem NEWPW="newsecret"
507 1.1 lukem echo "Testing passwd change..."
508 1.1.1.9 christos $LDAPPASSWD -H $URI1 \
509 1.1 lukem -D "${BINDDN}" -w ${BINDPW} -s ${NEWPW} \
510 1.1 lukem "$BINDDN" >> $TESTOUT 2>&1
511 1.1 lukem
512 1.1 lukem RC=$?
513 1.1 lukem if test $RC != 0 ; then
514 1.1 lukem echo "ldappasswd failed ($RC)!"
515 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
516 1.1 lukem exit $RC
517 1.1 lukem fi
518 1.1 lukem
519 1.1 lukem echo -n "Testing bind with new secret... "
520 1.1.1.9 christos $LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $NEWPW
521 1.1 lukem RC=$?
522 1.1 lukem if test $RC != 0 ; then
523 1.1 lukem echo "ldapwhoami failed ($RC)!"
524 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
525 1.1 lukem exit $RC
526 1.1 lukem fi
527 1.1 lukem
528 1.1 lukem BINDDN="cn=Some One,${BASEDN}"
529 1.1 lukem BINDPW="someone"
530 1.1 lukem echo -n "Testing bind with newly added user... "
531 1.1.1.9 christos $LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $BINDPW
532 1.1 lukem RC=$?
533 1.1 lukem if test $RC != 0 ; then
534 1.1 lukem echo "ldapwhoami failed ($RC)!"
535 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
536 1.1 lukem exit $RC
537 1.1 lukem fi
538 1.1 lukem
539 1.1 lukem echo "Using ldapsearch to retrieve all the entries..."
540 1.1 lukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
541 1.1.1.9 christos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
542 1.1 lukem "objectClass=*" >> $SEARCHOUT 2>&1
543 1.1 lukem
544 1.1 lukem RC=$?
545 1.1 lukem if test $RC != 0 ; then
546 1.1 lukem echo "ldapsearch failed ($RC)!"
547 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
548 1.1 lukem exit $RC
549 1.1 lukem fi
550 1.1 lukem
551 1.1 lukem echo "Filtering ldapsearch results..."
552 1.1.1.3 adam $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
553 1.1 lukem echo "Filtering modified ldif..."
554 1.1.1.3 adam $LDIFFILTER < $SQLWRITE > $LDIFFLT
555 1.1 lukem echo "Comparing filter output..."
556 1.1 lukem $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
557 1.1 lukem
558 1.1 lukem if test $? != 0 ; then
559 1.1 lukem echo "comparison failed - SQL mods search didn't succeed"
560 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
561 1.1 lukem exit 1
562 1.1 lukem fi
563 1.1 lukem ;;
564 1.1 lukem
565 1.1 lukem *)
566 1.1 lukem echo "apparently ${RDBMS} does not support writes; skipping..."
567 1.1 lukem ;;
568 1.1 lukem esac
569 1.1 lukem
570 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
571 1.1 lukem
572 1.1 lukem echo ">>>>> Test succeeded"
573 1.1 lukem exit 0
574