12de962bdSlukem#! /bin/sh 2d11b170bStron# $OpenLDAP$ 32de962bdSlukem## This work is part of OpenLDAP Software <http://www.openldap.org/>. 42de962bdSlukem## 5*e670fd5cSchristos## Copyright 1998-2021 The OpenLDAP Foundation. 62de962bdSlukem## All rights reserved. 72de962bdSlukem## 82de962bdSlukem## Redistribution and use in source and binary forms, with or without 92de962bdSlukem## modification, are permitted only as authorized by the OpenLDAP 102de962bdSlukem## Public License. 112de962bdSlukem## 122de962bdSlukem## A copy of this license is available in the file LICENSE in the 132de962bdSlukem## top-level directory of the distribution or, alternatively, at 142de962bdSlukem## <http://www.OpenLDAP.org/license.html>. 152de962bdSlukem 162de962bdSlukemecho "running defines.sh" 172de962bdSlukem. $SRCDIR/scripts/defines.sh 182de962bdSlukem 192de962bdSlukemecho "" 202de962bdSlukem 212de962bdSlukemif test $BACKMETA = metano ; then 222de962bdSlukem echo "meta backend not available, test skipped" 232de962bdSlukem exit 0 242de962bdSlukemfi 252de962bdSlukem 26bb30016cSlukemif test $BACKLDAP = ldapno ; then 27bb30016cSlukem echo "ldap backend not available, test skipped" 28bb30016cSlukem exit 0 29bb30016cSlukemfi 30bb30016cSlukem 312de962bdSlukemrm -rf $TESTDIR 322de962bdSlukem 332de962bdSlukemmkdir -p $TESTDIR $DBDIR1 $DBDIR2 342de962bdSlukem 352de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..." 36*e670fd5cSchristos. $CONFFILTER $BACKEND < $METACONF1 > $CONF1 37*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 382de962bdSlukemPID=$! 392de962bdSlukemif test $WAIT != 0 ; then 402de962bdSlukem echo PID $PID 412de962bdSlukem read foo 422de962bdSlukemfi 432de962bdSlukemKILLPIDS="$PID" 442de962bdSlukem 452de962bdSlukemsleep 1 462de962bdSlukem 472de962bdSlukemecho "Using ldapsearch to check that slapd is running..." 482de962bdSlukemfor i in 0 1 2 3 4 5; do 49*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 502de962bdSlukem 'objectclass=*' > /dev/null 2>&1 512de962bdSlukem RC=$? 522de962bdSlukem if test $RC = 0 ; then 532de962bdSlukem break 542de962bdSlukem fi 552de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 562de962bdSlukem sleep 5 572de962bdSlukemdone 582de962bdSlukemif test $RC != 0 ; then 592de962bdSlukem echo "ldapsearch failed ($RC)!" 602de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 612de962bdSlukem exit $RC 622de962bdSlukemfi 632de962bdSlukem 642de962bdSlukemecho "Using ldapadd to populate the database..." 65*e670fd5cSchristos$LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD < \ 662de962bdSlukem $LDIFORDERED > $TESTOUT 2>&1 672de962bdSlukemRC=$? 682de962bdSlukemif test $RC != 0 ; then 692de962bdSlukem echo "ldapadd failed ($RC)!" 702de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 712de962bdSlukem exit $RC 722de962bdSlukemfi 732de962bdSlukem 742de962bdSlukemecho "Starting slapd on TCP/IP port $PORT2..." 75*e670fd5cSchristos. $CONFFILTER $BACKEND < $METACONF2 > $CONF2 76*e670fd5cSchristos$SLAPD -f $CONF2 -h $URI2 -d $LVL > $LOG2 2>&1 & 772de962bdSlukemPID=$! 782de962bdSlukemif test $WAIT != 0 ; then 792de962bdSlukem echo PID $PID 802de962bdSlukem read foo 812de962bdSlukemfi 822de962bdSlukemKILLPIDS="$KILLPIDS $PID" 832de962bdSlukem 842de962bdSlukemsleep 1 852de962bdSlukem 862de962bdSlukemecho "Using ldapsearch to check that slapd is running..." 872de962bdSlukemfor i in 0 1 2 3 4 5; do 88*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI2 \ 892de962bdSlukem 'objectclass=*' > /dev/null 2>&1 902de962bdSlukem RC=$? 912de962bdSlukem if test $RC = 0 ; then 922de962bdSlukem break 932de962bdSlukem fi 942de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 952de962bdSlukem sleep 5 962de962bdSlukemdone 972de962bdSlukemif test $RC != 0 ; then 982de962bdSlukem echo "ldapsearch failed ($RC)!" 992de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1002de962bdSlukem exit $RC 1012de962bdSlukemfi 1022de962bdSlukem 1032de962bdSlukemecho "Using ldapadd to populate the database..." 104*e670fd5cSchristos$LDAPADD -D "$METAMANAGERDN" -H $URI2 -w $PASSWD < \ 1052de962bdSlukem $LDIFMETA >> $TESTOUT 2>&1 1062de962bdSlukemRC=$? 1072de962bdSlukemif test $RC != 0 ; then 1082de962bdSlukem echo "ldapadd failed ($RC)!" 1092de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1102de962bdSlukem exit $RC 1112de962bdSlukemfi 1122de962bdSlukem 1132de962bdSlukemecho "Starting slapd on TCP/IP port $PORT3..." 114*e670fd5cSchristos. $CONFFILTER $BACKEND < $METACONF > $CONF3 115*e670fd5cSchristos$SLAPD -f $CONF3 -h $URI3 -d $LVL > $LOG3 2>&1 & 1162de962bdSlukemPID=$! 1172de962bdSlukemif test $WAIT != 0 ; then 1182de962bdSlukem echo PID $PID 1192de962bdSlukem read foo 1202de962bdSlukemfi 1212de962bdSlukemKILLPIDS="$KILLPIDS $PID" 1222de962bdSlukem 1232de962bdSlukemsleep 1 1242de962bdSlukem 1252de962bdSlukemecho "Using ldapsearch to check that slapd is running..." 1262de962bdSlukemfor i in 0 1 2 3 4 5; do 127*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI3 \ 1282de962bdSlukem 'objectclass=*' > /dev/null 2>&1 1292de962bdSlukem RC=$? 1302de962bdSlukem if test $RC = 0 ; then 1312de962bdSlukem break 1322de962bdSlukem fi 1332de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 1342de962bdSlukem sleep 5 1352de962bdSlukemdone 1362de962bdSlukemif test $RC != 0 ; then 1372de962bdSlukem echo "ldapsearch failed ($RC)!" 1382de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1392de962bdSlukem exit $RC 1402de962bdSlukemfi 1412de962bdSlukem 1422de962bdSlukemcat /dev/null > $SEARCHOUT 1432de962bdSlukem 1442de962bdSlukemBASEDN="o=Example,c=US" 1452de962bdSlukemecho "Searching base=\"$BASEDN\"..." 1462de962bdSlukemecho "# searching base=\"$BASEDN\"..." >> $SEARCHOUT 147*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -b "$BASEDN" >> $SEARCHOUT 2>&1 1482de962bdSlukemRC=$? 1492de962bdSlukem#if test $RC != 0 ; then 1502de962bdSlukem# echo "Search failed ($RC)!" 1512de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 1522de962bdSlukem# exit $RC 1532de962bdSlukem#fi 1542de962bdSlukemcase $RC in 1552de962bdSlukem 0) 1562de962bdSlukem ;; 1572de962bdSlukem 51) 1582de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 1592de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1602de962bdSlukem exit 0 1612de962bdSlukem ;; 1622de962bdSlukem *) 1632de962bdSlukem echo "Search failed ($RC)!" 1642de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1652de962bdSlukem exit $RC 1662de962bdSlukem ;; 1672de962bdSlukemesac 1682de962bdSlukem 1692de962bdSlukem# ITS#4195: spurious matchedDN when the search scopes the main target, 1702de962bdSlukem# and the searchBase is not present, so that target returns noSuchObject 1712de962bdSlukemBASEDN="ou=Meta,o=Example,c=US" 1722de962bdSlukemecho "Searching base=\"$BASEDN\"..." 1732de962bdSlukemecho "# searching base=\"$BASEDN\"..." >> $SEARCHOUT 174*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -b "$BASEDN" >> $SEARCHOUT 2>&1 1752de962bdSlukemRC=$? 1762de962bdSlukem#if test $RC != 0 ; then 1772de962bdSlukem# echo "Search failed ($RC)!" 1782de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 1792de962bdSlukem# exit $RC 1802de962bdSlukem#fi 1812de962bdSlukemcase $RC in 1822de962bdSlukem 0) 1832de962bdSlukem ;; 1842de962bdSlukem 51) 1852de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 1862de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1872de962bdSlukem exit 0 1882de962bdSlukem ;; 1892de962bdSlukem *) 1902de962bdSlukem echo "Search failed ($RC)!" 1912de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1922de962bdSlukem exit $RC 1932de962bdSlukem ;; 1942de962bdSlukemesac 1952de962bdSlukem 1962de962bdSlukem# 1972de962bdSlukem# Do some modifications 1982de962bdSlukem# 1992de962bdSlukem 2002de962bdSlukemBASEDN="o=Example,c=US" 2012de962bdSlukemecho "Modifying database \"$BASEDN\"..." 202*e670fd5cSchristos$LDAPMODIFY -v -D "cn=Manager,$BASEDN" -H $URI3 -w $PASSWD \ 2032de962bdSlukem -M >> $TESTOUT 2>&1 << EOMODS 2042de962bdSlukem# These operations (updates with objectClass mapping) triggered ITS#3499 2052de962bdSlukemdn: cn=Added Group,ou=Groups,$BASEDN 2062de962bdSlukemchangetype: add 2072de962bdSlukemobjectClass: groupOfNames 2082de962bdSlukemobjectClass: uidObject 2092de962bdSlukemcn: Added Group 2102de962bdSlukemmember: cn=Added Group,ou=Groups,$BASEDN 2112de962bdSlukemuid: added 2122de962bdSlukem 2132de962bdSlukemdn: cn=Another Added Group,ou=Groups,$BASEDN 2142de962bdSlukemchangetype: add 2152de962bdSlukemobjectClass: groupOfNames 2162de962bdSlukemcn: Another Added Group 2172de962bdSlukemmember: cn=Added Group,ou=Groups,$BASEDN 2182de962bdSlukemmember: cn=Another Added Group,ou=Groups,$BASEDN 2192de962bdSlukem 2202de962bdSlukemdn: cn=Another Added Group,ou=Groups,$BASEDN 2212de962bdSlukemchangetype: modify 2222de962bdSlukemadd: objectClass 2232de962bdSlukemobjectClass: uidObject 2242de962bdSlukem- 2252de962bdSlukemadd: uid 2262de962bdSlukemuid: added 2272de962bdSlukem- 2282de962bdSlukem 2292de962bdSlukemdn: cn=Added Group,ou=Groups,$BASEDN 2302de962bdSlukemchangetype: modify 2312de962bdSlukemdelete: objectClass 2322de962bdSlukemobjectClass: uidObject 2332de962bdSlukem- 2342de962bdSlukemdelete: uid 2352de962bdSlukem- 2362de962bdSlukem 2372de962bdSlukemdn: ou=Meta,$BASEDN 2382de962bdSlukemchangetype: modify 2392de962bdSlukemadd: description 2402de962bdSlukemdescription: added to "ou=Meta,$BASEDN" 2412de962bdSlukem- 2422de962bdSlukem 2432de962bdSlukemdn: ou=Who's going to handle this?,$BASEDN 2442de962bdSlukemchangetype: add 2452de962bdSlukemobjectClass: organizationalUnit 2462de962bdSlukemou: Who's going to handle this? 2472de962bdSlukemdescription: added 2482de962bdSlukemdescription: will be deleted 2492de962bdSlukem 2502de962bdSlukemdn: ou=Same as above,$BASEDN 2512de962bdSlukemchangetype: add 2522de962bdSlukemobjectClass: organizationalUnit 2532de962bdSlukemou: Same as above 2542de962bdSlukemdescription: added right after "Who's going to handle this?" 2552de962bdSlukemdescription: will be preserved 2562de962bdSlukem 2572de962bdSlukemdn: ou=Who's going to handle this?,$BASEDN 2582de962bdSlukemchangetype: delete 2592de962bdSlukem 2602de962bdSlukemdn: ou=Who's going to handle this?,ou=Meta,$BASEDN 2612de962bdSlukemchangetype: add 2622de962bdSlukemobjectClass: organizationalUnit 2632de962bdSlukemou: Who's going to handle this? 2642de962bdSlukemdescription: added 2652de962bdSlukemdescription: will be deleted 2662de962bdSlukem 2672de962bdSlukemdn: ou=Same as above,ou=Meta,$BASEDN 2682de962bdSlukemchangetype: add 2692de962bdSlukemobjectClass: organizationalUnit 2702de962bdSlukemou: Same as above 2712de962bdSlukemdescription: added right after "Who's going to handle this?" 2722de962bdSlukemdescription: will be preserved 2732de962bdSlukem 2742de962bdSlukemdn: cn=Added User,ou=Same as above,ou=Meta,$BASEDN 2752de962bdSlukemchangetype: add 2762de962bdSlukemobjectClass: inetOrgPerson 2772de962bdSlukemcn: Added User 2782de962bdSlukemsn: User 2792de962bdSlukemuserPassword: secret 2802de962bdSlukem 2812de962bdSlukemdn: ou=Who's going to handle this?,ou=Meta,$BASEDN 2822de962bdSlukemchangetype: delete 2832de962bdSlukemEOMODS 2842de962bdSlukem 2852de962bdSlukemRC=$? 2862de962bdSlukem#if test $RC != 0 ; then 2872de962bdSlukem# echo "Modify failed ($RC)!" 2882de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 2892de962bdSlukem# exit $RC 2902de962bdSlukem#fi 2912de962bdSlukemcase $RC in 2922de962bdSlukem 0) 2932de962bdSlukem ;; 2942de962bdSlukem 51) 2952de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 2962de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2972de962bdSlukem exit 0 2982de962bdSlukem ;; 2992de962bdSlukem *) 3002de962bdSlukem echo "Modify failed ($RC)!" 3012de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3022de962bdSlukem exit $RC 3032de962bdSlukem ;; 3042de962bdSlukemesac 3052de962bdSlukem 3062de962bdSlukemecho "Searching base=\"$BASEDN\"..." 3072de962bdSlukemecho "# searching base=\"$BASEDN\"..." >> $SEARCHOUT 308*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -b "$BASEDN" >> $SEARCHOUT 2>&1 3092de962bdSlukemRC=$? 3102de962bdSlukem#if test $RC != 0 ; then 3112de962bdSlukem# echo "Search failed ($RC)!" 3122de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 3132de962bdSlukem# exit $RC 3142de962bdSlukem#fi 3152de962bdSlukemcase $RC in 3162de962bdSlukem 0) 3172de962bdSlukem ;; 3182de962bdSlukem 51) 3192de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 3202de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3212de962bdSlukem exit 0 3222de962bdSlukem ;; 3232de962bdSlukem *) 3242de962bdSlukem echo "Search failed ($RC)!" 3252de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3262de962bdSlukem exit $RC 3272de962bdSlukem ;; 3282de962bdSlukemesac 3292de962bdSlukem 3302de962bdSlukemBASEDN="o=Example,c=US" 3312de962bdSlukemecho " base=\"$BASEDN\"..." 3322de962bdSlukemecho "# base=\"$BASEDN\"..." >> $SEARCHOUT 333*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -b "$BASEDN" -M "$FILTER" '*' ref \ 3342de962bdSlukem >> $SEARCHOUT 2>&1 3352de962bdSlukemRC=$? 3362de962bdSlukem#if test $RC != 0 ; then 3372de962bdSlukem# echo "Search failed ($RC)!" 3382de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 3392de962bdSlukem# exit $RC 3402de962bdSlukem#fi 3412de962bdSlukemcase $RC in 3422de962bdSlukem 0) 3432de962bdSlukem ;; 3442de962bdSlukem 51) 3452de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 3462de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3472de962bdSlukem exit 0 3482de962bdSlukem ;; 3492de962bdSlukem *) 3502de962bdSlukem echo "Search failed ($RC)!" 3512de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3522de962bdSlukem exit $RC 3532de962bdSlukem ;; 3542de962bdSlukemesac 3552de962bdSlukem 3562de962bdSlukemBASEDN="o=Example,c=US" 3572de962bdSlukemFILTER="(seeAlso=cn=all staff,ou=Groups,$BASEDN)" 3582de962bdSlukemecho "Searching filter=\"$FILTER\"" 3592de962bdSlukemecho " attrs=\"seeAlso\"" 3602de962bdSlukemecho " base=\"$BASEDN\"..." 3612de962bdSlukemecho "# searching filter=\"$FILTER\"" >> $SEARCHOUT 3622de962bdSlukemecho "# attrs=\"seeAlso\"" >> $SEARCHOUT 3632de962bdSlukemecho "# base=\"$BASEDN\"..." >> $SEARCHOUT 364*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -b "$BASEDN" "$FILTER" seeAlso \ 3652de962bdSlukem >> $SEARCHOUT 2>&1 3662de962bdSlukemRC=$? 3672de962bdSlukem#if test $RC != 0 ; then 3682de962bdSlukem# echo "Search failed ($RC)!" 3692de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 3702de962bdSlukem# exit $RC 3712de962bdSlukem#fi 3722de962bdSlukemcase $RC in 3732de962bdSlukem 0) 3742de962bdSlukem ;; 3752de962bdSlukem 51) 3762de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 3772de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3782de962bdSlukem exit 0 3792de962bdSlukem ;; 3802de962bdSlukem *) 3812de962bdSlukem echo "Search failed ($RC)!" 3822de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3832de962bdSlukem exit $RC 3842de962bdSlukem ;; 3852de962bdSlukemesac 3862de962bdSlukem 3872de962bdSlukemFILTER="(uid=example)" 3882de962bdSlukemecho "Searching filter=\"$FILTER\"" 3892de962bdSlukemecho " attrs=\"uid\"" 3902de962bdSlukemecho " base=\"$BASEDN\"..." 3912de962bdSlukemecho "# searching filter=\"$FILTER\"" >> $SEARCHOUT 3922de962bdSlukemecho "# attrs=\"uid\"" >> $SEARCHOUT 3932de962bdSlukemecho "# base=\"$BASEDN\"..." >> $SEARCHOUT 394*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -b "$BASEDN" "$FILTER" uid \ 3952de962bdSlukem >> $SEARCHOUT 2>&1 3962de962bdSlukemRC=$? 3972de962bdSlukem#if test $RC != 0 ; then 3982de962bdSlukem# echo "Search failed ($RC)!" 3992de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 4002de962bdSlukem# exit $RC 4012de962bdSlukem#fi 4022de962bdSlukemcase $RC in 4032de962bdSlukem 0) 4042de962bdSlukem ;; 4052de962bdSlukem 51) 4062de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 4072de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4082de962bdSlukem exit 0 4092de962bdSlukem ;; 4102de962bdSlukem *) 4112de962bdSlukem echo "Search failed ($RC)!" 4122de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4132de962bdSlukem exit $RC 4142de962bdSlukem ;; 4152de962bdSlukemesac 4162de962bdSlukem 4172de962bdSlukemFILTER="(member=cn=Another Added Group,ou=Groups,$BASEDN)" 4182de962bdSlukemecho "Searching filter=\"$FILTER\"" 4192de962bdSlukemecho " attrs=\"member\"" 4202de962bdSlukemecho " base=\"$BASEDN\"..." 4212de962bdSlukemecho "# searching filter=\"$FILTER\"" >> $SEARCHOUT 4222de962bdSlukemecho "# attrs=\"member\"" >> $SEARCHOUT 4232de962bdSlukemecho "# base=\"$BASEDN\"..." >> $SEARCHOUT 424*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -b "$BASEDN" "$FILTER" member \ 4252de962bdSlukem >> $SEARCHOUT 2>&1 4262de962bdSlukemRC=$? 4272de962bdSlukem#if test $RC != 0 ; then 4282de962bdSlukem# echo "Search failed ($RC)!" 4292de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 4302de962bdSlukem# exit $RC 4312de962bdSlukem#fi 4322de962bdSlukemcase $RC in 4332de962bdSlukem 0) 4342de962bdSlukem ;; 4352de962bdSlukem 51) 4362de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 4372de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4382de962bdSlukem exit 0 4392de962bdSlukem ;; 4402de962bdSlukem *) 4412de962bdSlukem echo "Search failed ($RC)!" 4422de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4432de962bdSlukem exit $RC 4442de962bdSlukem ;; 4452de962bdSlukemesac 4462de962bdSlukem 4472de962bdSlukemecho "Waiting 10 seconds for cached connections to timeout..." 4482de962bdSlukemsleep 10 4492de962bdSlukem 4502de962bdSlukemecho "Searching with a timed out connection..." 4512de962bdSlukemecho "# searching filter=\"$FILTER\"" >> $SEARCHOUT 4522de962bdSlukemecho "# attrs=\"member\"" >> $SEARCHOUT 4532de962bdSlukemecho "# base=\"$BASEDN\"" >> $SEARCHOUT 4542de962bdSlukemecho "# with a timed out connection..." >> $SEARCHOUT 455*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 4562de962bdSlukem -b "$BASEDN" "$FILTER" member \ 4572de962bdSlukem >> $SEARCHOUT 2>&1 4582de962bdSlukemRC=$? 4592de962bdSlukem#if test $RC != 0 ; then 4602de962bdSlukem# echo "Search failed ($RC)!" 4612de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 4622de962bdSlukem# exit $RC 4632de962bdSlukem#fi 4642de962bdSlukemcase $RC in 4652de962bdSlukem 0) 4662de962bdSlukem ;; 4672de962bdSlukem 51) 4682de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 4692de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4702de962bdSlukem exit 0 4712de962bdSlukem ;; 4722de962bdSlukem *) 4732de962bdSlukem echo "Search failed ($RC)!" 4742de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4752de962bdSlukem exit $RC 4762de962bdSlukem ;; 4772de962bdSlukemesac 4782de962bdSlukem 4792de962bdSlukem# NOTE: cannot send to $SEARCHOUT because the returned entries 4802de962bdSlukem# are not predictable... 4812de962bdSlukemecho "Checking server-enforced size limit..." 4822de962bdSlukemecho "# Checking server-enforced size limit..." >> $SEARCHOUT 483*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 \ 4842de962bdSlukem -D "cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" -w bjorn \ 4852de962bdSlukem -b "$BASEDN" "(objectClass=*)" 1.1 \ 4862de962bdSlukem >> $TESTOUT 2>&1 4872de962bdSlukemRC=$? 488ef2f90d3Sadamcase $RC,$BACKEND in 489ef2f90d3Sadam 4,* | 0,null) 490ef2f90d3Sadam ;; 491ef2f90d3Sadam 0,*) 4922de962bdSlukem echo "Search should have failed ($RC)!" 4932de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4942de962bdSlukem exit -1 4952de962bdSlukem ;; 4962de962bdSlukem *) 4972de962bdSlukem echo "Search failed ($RC)!" 4982de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4992de962bdSlukem exit $RC 5002de962bdSlukem ;; 5012de962bdSlukemesac 5022de962bdSlukem 5032de962bdSlukem# NOTE: cannot send to $SEARCHOUT because the returned entries 5042de962bdSlukem# are not predictable... 5052de962bdSlukemecho "Checking client-requested size limit..." 5062de962bdSlukemecho "# Checking client-requested size limit..." >> $SEARCHOUT 507*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI3 \ 5082de962bdSlukem -D "cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" -w bjorn \ 5092de962bdSlukem -b "$BASEDN" -z 2 "(objectClass=*)" 1.1 \ 5102de962bdSlukem >> $TESTOUT 2>&1 5112de962bdSlukemRC=$? 512ef2f90d3Sadamcase $RC,$BACKEND in 513ef2f90d3Sadam 4,* | 0,null) 514ef2f90d3Sadam ;; 515ef2f90d3Sadam 0,*) 5162de962bdSlukem echo "Search should have failed ($RC)!" 5172de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5182de962bdSlukem exit -1 5192de962bdSlukem ;; 5202de962bdSlukem *) 5212de962bdSlukem echo "Search failed ($RC)!" 5222de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5232de962bdSlukem exit $RC 5242de962bdSlukem ;; 5252de962bdSlukemesac 5262de962bdSlukem 5272de962bdSlukemecho "Filtering ldapsearch results..." 528ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 5292de962bdSlukemecho "Filtering original ldif used to create database..." 530ef2f90d3Sadam$LDIFFILTER < $METAOUT > $LDIFFLT 5312de962bdSlukemecho "Comparing filter output..." 5322de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 5332de962bdSlukem 5342de962bdSlukemif test $? != 0 ; then 5352de962bdSlukem echo "comparison failed - meta search/modification didn't succeed" 5362de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5372de962bdSlukem exit 1 5382de962bdSlukemfi 5392de962bdSlukem 5402de962bdSlukemBASEDN="o=Example,c=US" 5412de962bdSlukemecho "Changing password to database \"$BASEDN\"..." 542*e670fd5cSchristos$LDAPPASSWD -H $URI3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 5432de962bdSlukem -s $PASSWD "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \ 5442de962bdSlukem >> $TESTOUT 2>&1 5452de962bdSlukemRC=$? 5462de962bdSlukem#if test $RC != 0 ; then 5472de962bdSlukem# echo "Passwd ExOp failed ($RC)!" 5482de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 5492de962bdSlukem# exit $RC 5502de962bdSlukem#fi 5512de962bdSlukemcase $RC in 5522de962bdSlukem 0) 5532de962bdSlukem ;; 5542de962bdSlukem 51) 5552de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 5562de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5572de962bdSlukem exit 0 5582de962bdSlukem ;; 5592de962bdSlukem *) 5602de962bdSlukem echo "Passwd ExOp failed ($RC)!" 5612de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5622de962bdSlukem exit $RC 5632de962bdSlukem ;; 5642de962bdSlukemesac 5652de962bdSlukem 5662de962bdSlukemecho "Binding with newly changed password to database \"$BASEDN\"..." 567*e670fd5cSchristos$LDAPWHOAMI -H $URI3 \ 5682de962bdSlukem -D "cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN" \ 5692de962bdSlukem -w $PASSWD >> $TESTOUT 2>&1 5702de962bdSlukemRC=$? 5712de962bdSlukem#if test $RC != 0 ; then 5722de962bdSlukem# echo "WhoAmI failed ($RC)!" 5732de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 5742de962bdSlukem# exit $RC 5752de962bdSlukem#fi 5762de962bdSlukemcase $RC in 5772de962bdSlukem 0) 5782de962bdSlukem ;; 5792de962bdSlukem 51) 5802de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 5812de962bdSlukem ;; 5822de962bdSlukem *) 5832de962bdSlukem echo "WhoAmI failed ($RC)!" 5842de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5852de962bdSlukem exit $RC 5862de962bdSlukem ;; 5872de962bdSlukemesac 5882de962bdSlukem 5892de962bdSlukemecho "Binding as newly added user to database \"$BASEDN\"..." 590*e670fd5cSchristos$LDAPWHOAMI -H $URI3 \ 5912de962bdSlukem -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 5922de962bdSlukem -w $PASSWD >> $TESTOUT 2>&1 5932de962bdSlukemRC=$? 5942de962bdSlukem#if test $RC != 0 ; then 5952de962bdSlukem# echo "WhoAmI failed ($RC)!" 5962de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 5972de962bdSlukem# exit $RC 5982de962bdSlukem#fi 5992de962bdSlukemcase $RC in 6002de962bdSlukem 0) 6012de962bdSlukem ;; 6022de962bdSlukem 51) 6032de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 6042de962bdSlukem ;; 6052de962bdSlukem *) 6062de962bdSlukem echo "WhoAmI failed ($RC)!" 6072de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6082de962bdSlukem exit $RC 6092de962bdSlukem ;; 6102de962bdSlukemesac 6112de962bdSlukem 6122de962bdSlukemecho "Changing password to database \"$BASEDN\"..." 613*e670fd5cSchristos$LDAPPASSWD -H $URI3 -D "cn=Manager,$BASEDN" -w $PASSWD \ 6142de962bdSlukem -s meta "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 6152de962bdSlukem >> $TESTOUT 2>&1 6162de962bdSlukemRC=$? 6172de962bdSlukem#if test $RC != 0 ; then 6182de962bdSlukem# echo "Passwd ExOp failed ($RC)!" 6192de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 6202de962bdSlukem# exit $RC 6212de962bdSlukem#fi 6222de962bdSlukemcase $RC in 6232de962bdSlukem 0) 6242de962bdSlukem ;; 6252de962bdSlukem 51) 6262de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 6272de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6282de962bdSlukem exit 0 6292de962bdSlukem ;; 6302de962bdSlukem *) 6312de962bdSlukem echo "Passwd ExOp failed ($RC)!" 6322de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6332de962bdSlukem exit $RC 6342de962bdSlukem ;; 6352de962bdSlukemesac 6362de962bdSlukem 6372de962bdSlukemecho "Binding with newly changed password to database \"$BASEDN\"..." 638*e670fd5cSchristos$LDAPWHOAMI -H $URI3 \ 6392de962bdSlukem -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 6402de962bdSlukem -w meta >> $TESTOUT 2>&1 6412de962bdSlukemRC=$? 6422de962bdSlukem#if test $RC != 0 ; then 6432de962bdSlukem# echo "WhoAmI failed ($RC)!" 6442de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 6452de962bdSlukem# exit $RC 6462de962bdSlukem#fi 6472de962bdSlukemcase $RC in 6482de962bdSlukem 0) 6492de962bdSlukem ;; 6502de962bdSlukem 51) 6512de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 6522de962bdSlukem ;; 6532de962bdSlukem *) 6542de962bdSlukem echo "WhoAmI failed ($RC)!" 6552de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6562de962bdSlukem exit $RC 6572de962bdSlukem ;; 6582de962bdSlukemesac 6592de962bdSlukem 6602de962bdSlukemecho "Binding with incorrect password to database \"$BASEDN\"..." 661*e670fd5cSchristos$LDAPWHOAMI -H $URI3 \ 6622de962bdSlukem -D "cn=Added User,ou=Same as above,ou=Meta,$BASEDN" \ 6632de962bdSlukem -w bogus >> $TESTOUT 2>&1 6642de962bdSlukemRC=$? 6652de962bdSlukem#if test $RC != 0 ; then 6662de962bdSlukem# echo "WhoAmI failed ($RC)!" 6672de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 6682de962bdSlukem# exit $RC 6692de962bdSlukem#fi 670ef2f90d3Sadamcase $RC,$BACKEND in 671ef2f90d3Sadam 0,null) 672ef2f90d3Sadam ;; 673ef2f90d3Sadam 0,*) 6742de962bdSlukem echo "WhoAmI should have failed ($RC)!" 6752de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6762de962bdSlukem exit -1 6772de962bdSlukem ;; 678ef2f90d3Sadam 51,*) 6792de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 6802de962bdSlukem ;; 6812de962bdSlukem *) 6822de962bdSlukem ;; 6832de962bdSlukemesac 6842de962bdSlukem 6852de962bdSlukemecho "Binding with non-existing user to database \"$BASEDN\"..." 686*e670fd5cSchristos$LDAPWHOAMI -H $URI3 \ 6872de962bdSlukem -D "cn=Non-existing User,ou=Same as above,ou=Meta,$BASEDN" \ 6882de962bdSlukem -w bogus >> $TESTOUT 2>&1 6892de962bdSlukemRC=$? 6902de962bdSlukem#if test $RC != 0 ; then 6912de962bdSlukem# echo "WhoAmI failed ($RC)!" 6922de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 6932de962bdSlukem# exit $RC 6942de962bdSlukem#fi 695ef2f90d3Sadamcase $RC,$BACKEND in 696ef2f90d3Sadam 0,null) 697ef2f90d3Sadam ;; 698ef2f90d3Sadam 0,*) 6992de962bdSlukem echo "WhoAmI should have failed ($RC)!" 7002de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 7012de962bdSlukem exit -1 7022de962bdSlukem ;; 703ef2f90d3Sadam 51,*) 7042de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 7052de962bdSlukem ;; 7062de962bdSlukem *) 7072de962bdSlukem ;; 7082de962bdSlukemesac 7092de962bdSlukem 7102de962bdSlukemecho "Comparing to database \"$BASEDN\"..." 711*e670fd5cSchristos$LDAPCOMPARE -H $URI3 \ 7122de962bdSlukem "cn=Another Added Group,ou=Groups,$BASEDN" \ 7132de962bdSlukem "member:cn=Added Group,ou=Groups,$BASEDN" >> $TESTOUT 2>&1 7142de962bdSlukemRC=$? 7152de962bdSlukem#if test $RC != 6 ; then 7162de962bdSlukem# echo "Compare failed ($RC)!" 7172de962bdSlukem# test $KILLSERVERS != no && kill -HUP $KILLPIDS 7182de962bdSlukem# exit -1 7192de962bdSlukem#fi 720ef2f90d3Sadamcase $RC,$BACKEND in 721ef2f90d3Sadam 6,* | 5,null) 7222de962bdSlukem ;; 723ef2f90d3Sadam 51,*) 7242de962bdSlukem echo "### Hit LDAP_BUSY problem; you may want to re-run the test" 7252de962bdSlukem ;; 7262de962bdSlukem *) 7272de962bdSlukem echo "Compare failed ($RC)!" 7282de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 729ef2f90d3Sadam exit 1 7302de962bdSlukem ;; 7312de962bdSlukemesac 7322de962bdSlukem 7332de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS 7342de962bdSlukem 7352de962bdSlukemecho ">>>>> Test succeeded" 7362de962bdSlukem 7372de962bdSlukemtest $KILLSERVERS != no && wait 7382de962bdSlukem 7392de962bdSlukemexit 0 740