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