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 $BACKLDAP = ldapno ; then 22 echo "ldap backend not available, test skipped" 23 exit 0 24 fi 25 26 if test $RWM = rwmno ; then 27 echo "rwm (rewrite/remap) overlay 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 < $GLUELDAPCONF > $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 # ITS#4458 needs patch to slapo-rwm for global rewriting of passwd_exop 541 BASEDN="o=Example,c=US" 542 echo "Changing password to database \"$BASEDN\"..." 543 $LDAPPASSWD -H $URI3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 544 -s $PASSWD "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \ 545 >> $TESTOUT 2>&1 546 RC=$? 547 #if test $RC != 0 ; then 548 # echo "Passwd ExOp failed ($RC)!" 549 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 550 # exit $RC 551 #fi 552 case $RC in 553 0) 554 ;; 555 # 51) 556 # echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 557 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 558 # exit 0 559 # ;; 560 # 80) 561 1) 562 echo "Passwd ExOp failed ($RC)! ITS#4458?" 563 ;; 564 *) 565 echo "Passwd ExOp failed ($RC)!" 566 test $KILLSERVERS != no && kill -HUP $KILLPIDS 567 exit $RC 568 ;; 569 esac 570 571 if test $RC = 0 ; then 572 echo "Binding with newly changed password to database \"$BASEDN\"..." 573 $LDAPWHOAMI -H $URI3 \ 574 -D "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \ 575 -w $PASSWD >> $TESTOUT 2>&1 576 RC=$? 577 #if test $RC != 0 ; then 578 # echo "WhoAmI failed ($RC)!" 579 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 580 # exit $RC 581 #fi 582 case $RC in 583 0) 584 ;; 585 51) 586 echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 587 ;; 588 *) 589 echo "WhoAmI failed ($RC)!" 590 test $KILLSERVERS != no && kill -HUP $KILLPIDS 591 exit $RC 592 ;; 593 esac 594 fi 595 596 echo "Binding as newly added user to database \"$BASEDN\"..." 597 $LDAPWHOAMI -H $URI3 \ 598 -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 599 -w $PASSWD >> $TESTOUT 2>&1 600 RC=$? 601 #if test $RC != 0 ; then 602 # echo "WhoAmI failed ($RC)!" 603 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 604 # exit $RC 605 #fi 606 case $RC in 607 0) 608 ;; 609 51) 610 echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 611 ;; 612 *) 613 echo "WhoAmI failed ($RC)!" 614 test $KILLSERVERS != no && kill -HUP $KILLPIDS 615 exit $RC 616 ;; 617 esac 618 619 echo "Changing password to database \"$BASEDN\"..." 620 $LDAPPASSWD -H $URI3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 621 -s meta "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 622 >> $TESTOUT 2>&1 623 RC=$? 624 #if test $RC != 0 ; then 625 # echo "Passwd ExOp failed ($RC)!" 626 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 627 # exit $RC 628 #fi 629 case $RC in 630 0) 631 ;; 632 # 51) 633 # echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 634 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 635 # exit 0 636 # ;; 637 # 80) 638 1) 639 echo "Passwd ExOp failed ($RC)! ITS#4458?" 640 ;; 641 *) 642 echo "Passwd ExOp failed ($RC)!" 643 test $KILLSERVERS != no && kill -HUP $KILLPIDS 644 exit $RC 645 ;; 646 esac 647 648 if test $RC = 0 ; then 649 echo "Binding with newly changed password to database \"$BASEDN\"..." 650 $LDAPWHOAMI -H $URI3 \ 651 -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 652 -w meta >> $TESTOUT 2>&1 653 RC=$? 654 #if test $RC != 0 ; then 655 # echo "WhoAmI failed ($RC)!" 656 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 657 # exit $RC 658 #fi 659 case $RC in 660 0) 661 ;; 662 51) 663 echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 664 ;; 665 *) 666 echo "WhoAmI failed ($RC)!" 667 test $KILLSERVERS != no && kill -HUP $KILLPIDS 668 exit $RC 669 ;; 670 esac 671 fi 672 673 echo "Binding with incorrect password to database \"$BASEDN\"..." 674 $LDAPWHOAMI -H $URI3 \ 675 -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 676 -w bogus >> $TESTOUT 2>&1 677 RC=$? 678 #if test $RC != 0 ; then 679 # echo "WhoAmI failed ($RC)!" 680 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 681 # exit $RC 682 #fi 683 case $RC,$BACKEND in 684 0,null) 685 ;; 686 0,*) 687 echo "WhoAmI should have failed ($RC)!" 688 test $KILLSERVERS != no && kill -HUP $KILLPIDS 689 exit 1 690 ;; 691 51,*) 692 echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 693 ;; 694 *) 695 ;; 696 esac 697 698 echo "Binding with non-existing user to database \"$BASEDN\"..." 699 $LDAPWHOAMI -H $URI3 \ 700 -D "cn=Non-existing User,ou=Same as above,ou=Meta,$BASEDN" \ 701 -w bogus >> $TESTOUT 2>&1 702 RC=$? 703 #if test $RC != 0 ; then 704 # echo "WhoAmI failed ($RC)!" 705 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 706 # exit $RC 707 #fi 708 case $RC,$BACKEND in 709 0,null) 710 ;; 711 0,*) 712 echo "WhoAmI should have failed ($RC)!" 713 test $KILLSERVERS != no && kill -HUP $KILLPIDS 714 exit 1 715 ;; 716 51,*) 717 echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 718 ;; 719 *) 720 ;; 721 esac 722 723 echo "Comparing to database \"$BASEDN\"..." 724 $LDAPCOMPARE -H $URI3 \ 725 "cn=Another Added Group,ou=Groups,$BASEDN" \ 726 "member:cn=Added Group,ou=Groups,$BASEDN" >> $TESTOUT 2>&1 727 RC=$? 728 #if test $RC != 6 ; then 729 # echo "Compare failed ($RC)!" 730 # test $KILLSERVERS != no && kill -HUP $KILLPIDS 731 # exit 1 732 #fi 733 case $RC,$BACKEND in 734 5,null) 735 ;; 736 6,*) 737 ;; 738 51,*) 739 echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 740 ;; 741 *) 742 echo "Compare failed ($RC)!" 743 test $KILLSERVERS != no && kill -HUP $KILLPIDS 744 exit 1 745 ;; 746 esac 747 748 test $KILLSERVERS != no && kill -HUP $KILLPIDS 749 750 echo ">>>>> Test succeeded" 751 752 test $KILLSERVERS != no && wait 753 754 exit 0 755