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