1#! /bin/sh 2# OpenLDAP: pkg/ldap/tests/scripts/test035-meta,v 1.14.2.8 2010/04/19 19:14:35 quanah Exp 3## This work is part of OpenLDAP Software <http://www.openldap.org/>. 4## 5## Copyright 1998-2010 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 16echo "running defines.sh" 17. $SRCDIR/scripts/defines.sh 18 19echo "" 20 21if test $BACKMETA = metano ; then 22 echo "meta backend not available, test skipped" 23 exit 0 24fi 25 26if test $BACKLDAP = ldapno ; then 27 echo "ldap backend not available, test skipped" 28 exit 0 29fi 30 31rm -rf $TESTDIR 32 33mkdir -p $TESTDIR $DBDIR1 $DBDIR2 34 35echo "Starting slapd on TCP/IP port $PORT1..." 36. $CONFFILTER $BACKEND $MONITORDB < $METACONF1 > $CONF1 37$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 & 38PID=$! 39if test $WAIT != 0 ; then 40 echo PID $PID 41 read foo 42fi 43KILLPIDS="$PID" 44 45sleep 1 46 47echo "Using ldapsearch to check that slapd is running..." 48for i in 0 1 2 3 4 5; do 49 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \ 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 57done 58if test $RC != 0 ; then 59 echo "ldapsearch failed ($RC)!" 60 test $KILLSERVERS != no && kill -HUP $KILLPIDS 61 exit $RC 62fi 63 64echo "Using ldapadd to populate the database..." 65$LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \ 66 $LDIFORDERED > $TESTOUT 2>&1 67RC=$? 68if test $RC != 0 ; then 69 echo "ldapadd failed ($RC)!" 70 test $KILLSERVERS != no && kill -HUP $KILLPIDS 71 exit $RC 72fi 73 74echo "Starting slapd on TCP/IP port $PORT2..." 75. $CONFFILTER $BACKEND $MONITORDB < $METACONF2 > $CONF2 76$SLAPD -f $CONF2 -h $URI2 -d $LVL $TIMING > $LOG2 2>&1 & 77PID=$! 78if test $WAIT != 0 ; then 79 echo PID $PID 80 read foo 81fi 82KILLPIDS="$KILLPIDS $PID" 83 84sleep 1 85 86echo "Using ldapsearch to check that slapd is running..." 87for i in 0 1 2 3 4 5; do 88 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \ 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 96done 97if test $RC != 0 ; then 98 echo "ldapsearch failed ($RC)!" 99 test $KILLSERVERS != no && kill -HUP $KILLPIDS 100 exit $RC 101fi 102 103echo "Using ldapadd to populate the database..." 104$LDAPADD -D "$METAMANAGERDN" -h $LOCALHOST -p $PORT2 -w $PASSWD < \ 105 $LDIFMETA >> $TESTOUT 2>&1 106RC=$? 107if test $RC != 0 ; then 108 echo "ldapadd failed ($RC)!" 109 test $KILLSERVERS != no && kill -HUP $KILLPIDS 110 exit $RC 111fi 112 113echo "Starting slapd on TCP/IP port $PORT3..." 114. $CONFFILTER $BACKEND $MONITORDB < $METACONF > $CONF3 115$SLAPD -f $CONF3 -h $URI3 -d $LVL $TIMING > $LOG3 2>&1 & 116PID=$! 117if test $WAIT != 0 ; then 118 echo PID $PID 119 read foo 120fi 121KILLPIDS="$KILLPIDS $PID" 122 123sleep 1 124 125echo "Using ldapsearch to check that slapd is running..." 126for i in 0 1 2 3 4 5; do 127 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT3 \ 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 135done 136if test $RC != 0 ; then 137 echo "ldapsearch failed ($RC)!" 138 test $KILLSERVERS != no && kill -HUP $KILLPIDS 139 exit $RC 140fi 141 142cat /dev/null > $SEARCHOUT 143 144BASEDN="o=Example,c=US" 145echo "Searching base=\"$BASEDN\"..." 146echo "# searching base=\"$BASEDN\"..." >> $SEARCHOUT 147$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" >> $SEARCHOUT 2>&1 148RC=$? 149#if test $RC != 0 ; then 150# echo "Search failed ($RC)!" 151# test $KILLSERVERS != no && kill -HUP $KILLPIDS 152# exit $RC 153#fi 154case $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 ;; 167esac 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 171BASEDN="ou=Meta,o=Example,c=US" 172echo "Searching base=\"$BASEDN\"..." 173echo "# searching base=\"$BASEDN\"..." >> $SEARCHOUT 174$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" >> $SEARCHOUT 2>&1 175RC=$? 176#if test $RC != 0 ; then 177# echo "Search failed ($RC)!" 178# test $KILLSERVERS != no && kill -HUP $KILLPIDS 179# exit $RC 180#fi 181case $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 ;; 194esac 195 196# 197# Do some modifications 198# 199 200BASEDN="o=Example,c=US" 201echo "Modifying database \"$BASEDN\"..." 202$LDAPMODIFY -v -D "cn=Manager,$BASEDN" -h $LOCALHOST -p $PORT3 -w $PASSWD \ 203 -M >> $TESTOUT 2>&1 << EOMODS 204# These operations (updates with objectClass mapping) triggered ITS#3499 205dn: cn=Added Group,ou=Groups,$BASEDN 206changetype: add 207objectClass: groupOfNames 208objectClass: uidObject 209cn: Added Group 210member: cn=Added Group,ou=Groups,$BASEDN 211uid: added 212 213dn: cn=Another Added Group,ou=Groups,$BASEDN 214changetype: add 215objectClass: groupOfNames 216cn: Another Added Group 217member: cn=Added Group,ou=Groups,$BASEDN 218member: cn=Another Added Group,ou=Groups,$BASEDN 219 220dn: cn=Another Added Group,ou=Groups,$BASEDN 221changetype: modify 222add: objectClass 223objectClass: uidObject 224- 225add: uid 226uid: added 227- 228 229dn: cn=Added Group,ou=Groups,$BASEDN 230changetype: modify 231delete: objectClass 232objectClass: uidObject 233- 234delete: uid 235- 236 237dn: ou=Meta,$BASEDN 238changetype: modify 239add: description 240description: added to "ou=Meta,$BASEDN" 241- 242 243dn: ou=Who's going to handle this?,$BASEDN 244changetype: add 245objectClass: organizationalUnit 246ou: Who's going to handle this? 247description: added 248description: will be deleted 249 250dn: ou=Same as above,$BASEDN 251changetype: add 252objectClass: organizationalUnit 253ou: Same as above 254description: added right after "Who's going to handle this?" 255description: will be preserved 256 257dn: ou=Who's going to handle this?,$BASEDN 258changetype: delete 259 260dn: ou=Who's going to handle this?,ou=Meta,$BASEDN 261changetype: add 262objectClass: organizationalUnit 263ou: Who's going to handle this? 264description: added 265description: will be deleted 266 267dn: ou=Same as above,ou=Meta,$BASEDN 268changetype: add 269objectClass: organizationalUnit 270ou: Same as above 271description: added right after "Who's going to handle this?" 272description: will be preserved 273 274dn: cn=Added User,ou=Same as above,ou=Meta,$BASEDN 275changetype: add 276objectClass: inetOrgPerson 277cn: Added User 278sn: User 279userPassword: secret 280 281dn: ou=Who's going to handle this?,ou=Meta,$BASEDN 282changetype: delete 283EOMODS 284 285RC=$? 286#if test $RC != 0 ; then 287# echo "Modify failed ($RC)!" 288# test $KILLSERVERS != no && kill -HUP $KILLPIDS 289# exit $RC 290#fi 291case $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 ;; 304esac 305 306echo "Searching base=\"$BASEDN\"..." 307echo "# searching base=\"$BASEDN\"..." >> $SEARCHOUT 308$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" >> $SEARCHOUT 2>&1 309RC=$? 310#if test $RC != 0 ; then 311# echo "Search failed ($RC)!" 312# test $KILLSERVERS != no && kill -HUP $KILLPIDS 313# exit $RC 314#fi 315case $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 ;; 328esac 329 330BASEDN="o=Example,c=US" 331echo " base=\"$BASEDN\"..." 332echo "# base=\"$BASEDN\"..." >> $SEARCHOUT 333$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" -M "$FILTER" '*' ref \ 334 >> $SEARCHOUT 2>&1 335RC=$? 336#if test $RC != 0 ; then 337# echo "Search failed ($RC)!" 338# test $KILLSERVERS != no && kill -HUP $KILLPIDS 339# exit $RC 340#fi 341case $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 ;; 354esac 355 356BASEDN="o=Example,c=US" 357FILTER="(seeAlso=cn=all staff,ou=Groups,$BASEDN)" 358echo "Searching filter=\"$FILTER\"" 359echo " attrs=\"seeAlso\"" 360echo " base=\"$BASEDN\"..." 361echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT 362echo "# attrs=\"seeAlso\"" >> $SEARCHOUT 363echo "# base=\"$BASEDN\"..." >> $SEARCHOUT 364$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" "$FILTER" seeAlso \ 365 >> $SEARCHOUT 2>&1 366RC=$? 367#if test $RC != 0 ; then 368# echo "Search failed ($RC)!" 369# test $KILLSERVERS != no && kill -HUP $KILLPIDS 370# exit $RC 371#fi 372case $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 ;; 385esac 386 387FILTER="(uid=example)" 388echo "Searching filter=\"$FILTER\"" 389echo " attrs=\"uid\"" 390echo " base=\"$BASEDN\"..." 391echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT 392echo "# attrs=\"uid\"" >> $SEARCHOUT 393echo "# base=\"$BASEDN\"..." >> $SEARCHOUT 394$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" "$FILTER" uid \ 395 >> $SEARCHOUT 2>&1 396RC=$? 397#if test $RC != 0 ; then 398# echo "Search failed ($RC)!" 399# test $KILLSERVERS != no && kill -HUP $KILLPIDS 400# exit $RC 401#fi 402case $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 ;; 415esac 416 417FILTER="(member=cn=Another Added Group,ou=Groups,$BASEDN)" 418echo "Searching filter=\"$FILTER\"" 419echo " attrs=\"member\"" 420echo " base=\"$BASEDN\"..." 421echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT 422echo "# attrs=\"member\"" >> $SEARCHOUT 423echo "# base=\"$BASEDN\"..." >> $SEARCHOUT 424$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -b "$BASEDN" "$FILTER" member \ 425 >> $SEARCHOUT 2>&1 426RC=$? 427#if test $RC != 0 ; then 428# echo "Search failed ($RC)!" 429# test $KILLSERVERS != no && kill -HUP $KILLPIDS 430# exit $RC 431#fi 432case $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 ;; 445esac 446 447echo "Waiting 10 seconds for cached connections to timeout..." 448sleep 10 449 450echo "Searching with a timed out connection..." 451echo "# searching filter=\"$FILTER\"" >> $SEARCHOUT 452echo "# attrs=\"member\"" >> $SEARCHOUT 453echo "# base=\"$BASEDN\"" >> $SEARCHOUT 454echo "# with a timed out connection..." >> $SEARCHOUT 455$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 456 -b "$BASEDN" "$FILTER" member \ 457 >> $SEARCHOUT 2>&1 458RC=$? 459#if test $RC != 0 ; then 460# echo "Search failed ($RC)!" 461# test $KILLSERVERS != no && kill -HUP $KILLPIDS 462# exit $RC 463#fi 464case $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 ;; 477esac 478 479# NOTE: cannot send to $SEARCHOUT because the returned entries 480# are not predictable... 481echo "Checking server-enforced size limit..." 482echo "# Checking server-enforced size limit..." >> $SEARCHOUT 483$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 \ 484 -D "cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" -w bjorn \ 485 -b "$BASEDN" "(objectClass=*)" 1.1 \ 486 >> $TESTOUT 2>&1 487RC=$? 488case $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 ;; 501esac 502 503# NOTE: cannot send to $SEARCHOUT because the returned entries 504# are not predictable... 505echo "Checking client-requested size limit..." 506echo "# Checking client-requested size limit..." >> $SEARCHOUT 507$LDAPSEARCH -S "" -h $LOCALHOST -p $PORT3 \ 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 511RC=$? 512case $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 ;; 525esac 526 527echo "Filtering ldapsearch results..." 528$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 529echo "Filtering original ldif used to create database..." 530$LDIFFILTER < $METAOUT > $LDIFFLT 531echo "Comparing filter output..." 532$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 533 534if test $? != 0 ; then 535 echo "comparison failed - meta search/modification didn't succeed" 536 test $KILLSERVERS != no && kill -HUP $KILLPIDS 537 exit 1 538fi 539 540BASEDN="o=Example,c=US" 541echo "Changing password to database \"$BASEDN\"..." 542$LDAPPASSWD -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 543 -s $PASSWD "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \ 544 >> $TESTOUT 2>&1 545RC=$? 546#if test $RC != 0 ; then 547# echo "Passwd ExOp failed ($RC)!" 548# test $KILLSERVERS != no && kill -HUP $KILLPIDS 549# exit $RC 550#fi 551case $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 ;; 564esac 565 566echo "Binding with newly changed password to database \"$BASEDN\"..." 567$LDAPWHOAMI -h $LOCALHOST -p $PORT3 \ 568 -D "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \ 569 -w $PASSWD >> $TESTOUT 2>&1 570RC=$? 571#if test $RC != 0 ; then 572# echo "WhoAmI failed ($RC)!" 573# test $KILLSERVERS != no && kill -HUP $KILLPIDS 574# exit $RC 575#fi 576case $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 ;; 587esac 588 589echo "Binding as newly added user to database \"$BASEDN\"..." 590$LDAPWHOAMI -h $LOCALHOST -p $PORT3 \ 591 -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 592 -w $PASSWD >> $TESTOUT 2>&1 593RC=$? 594#if test $RC != 0 ; then 595# echo "WhoAmI failed ($RC)!" 596# test $KILLSERVERS != no && kill -HUP $KILLPIDS 597# exit $RC 598#fi 599case $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 ;; 610esac 611 612echo "Changing password to database \"$BASEDN\"..." 613$LDAPPASSWD -h $LOCALHOST -p $PORT3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 614 -s meta "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 615 >> $TESTOUT 2>&1 616RC=$? 617#if test $RC != 0 ; then 618# echo "Passwd ExOp failed ($RC)!" 619# test $KILLSERVERS != no && kill -HUP $KILLPIDS 620# exit $RC 621#fi 622case $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 ;; 635esac 636 637echo "Binding with newly changed password to database \"$BASEDN\"..." 638$LDAPWHOAMI -h $LOCALHOST -p $PORT3 \ 639 -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 640 -w meta >> $TESTOUT 2>&1 641RC=$? 642#if test $RC != 0 ; then 643# echo "WhoAmI failed ($RC)!" 644# test $KILLSERVERS != no && kill -HUP $KILLPIDS 645# exit $RC 646#fi 647case $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 ;; 658esac 659 660echo "Binding with incorrect password to database \"$BASEDN\"..." 661$LDAPWHOAMI -h $LOCALHOST -p $PORT3 \ 662 -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 663 -w bogus >> $TESTOUT 2>&1 664RC=$? 665#if test $RC != 0 ; then 666# echo "WhoAmI failed ($RC)!" 667# test $KILLSERVERS != no && kill -HUP $KILLPIDS 668# exit $RC 669#fi 670case $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 ;; 683esac 684 685echo "Binding with non-existing user to database \"$BASEDN\"..." 686$LDAPWHOAMI -h $LOCALHOST -p $PORT3 \ 687 -D "cn=Non-existing User,ou=Same as above,ou=Meta,$BASEDN" \ 688 -w bogus >> $TESTOUT 2>&1 689RC=$? 690#if test $RC != 0 ; then 691# echo "WhoAmI failed ($RC)!" 692# test $KILLSERVERS != no && kill -HUP $KILLPIDS 693# exit $RC 694#fi 695case $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 ;; 708esac 709 710echo "Comparing to database \"$BASEDN\"..." 711$LDAPCOMPARE -h $LOCALHOST -p $PORT3 \ 712 "cn=Another Added Group,ou=Groups,$BASEDN" \ 713 "member:cn=Added Group,ou=Groups,$BASEDN" >> $TESTOUT 2>&1 714RC=$? 715#if test $RC != 6 ; then 716# echo "Compare failed ($RC)!" 717# test $KILLSERVERS != no && kill -HUP $KILLPIDS 718# exit -1 719#fi 720case $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 ;; 731esac 732 733test $KILLSERVERS != no && kill -HUP $KILLPIDS 734 735echo ">>>>> Test succeeded" 736 737test $KILLSERVERS != no && wait 738 739exit 0 740