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