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