xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/test025-limits (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
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
162de962bdSlukem## FIXME: need to exclude legal but wrong results...
172de962bdSlukem
182de962bdSlukemecho "running defines.sh"
192de962bdSlukem. $SRCDIR/scripts/defines.sh
202de962bdSlukem
21ef2f90d3Sadamif test $BACKEND = null; then
22ef2f90d3Sadam	echo "Limits irrelevant to $BACKEND backend, test skipped"
23ef2f90d3Sadam	exit 0
24ef2f90d3Sadamfi
25ef2f90d3Sadam
262de962bdSlukemmkdir -p $TESTDIR $DBDIR1
272de962bdSlukem
282de962bdSlukemecho "Running slapadd to build slapd database..."
29*e670fd5cSchristos. $CONFFILTER $BACKEND < $LIMITSCONF > $ADDCONF
302de962bdSlukem$SLAPADD -f $ADDCONF -l $LDIFLIMITS
312de962bdSlukemRC=$?
322de962bdSlukemif test $RC != 0 ; then
332de962bdSlukem	echo "slapadd failed ($RC)!"
342de962bdSlukem	exit $RC
352de962bdSlukemfi
362de962bdSlukem
372de962bdSlukemecho "Running slapindex to index slapd database..."
38*e670fd5cSchristos. $CONFFILTER $BACKEND < $LIMITSCONF > $CONF1
392de962bdSlukem$SLAPINDEX -f $CONF1
402de962bdSlukemRC=$?
412de962bdSlukemif test $RC != 0 ; then
422de962bdSlukem	echo "warning: slapindex failed ($RC)"
432de962bdSlukem	echo "  assuming no indexing support"
442de962bdSlukemfi
452de962bdSlukem
462de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
47*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
482de962bdSlukemPID=$!
492de962bdSlukemif test $WAIT != 0 ; then
502de962bdSlukem    echo PID $PID
512de962bdSlukem    read foo
522de962bdSlukemfi
532de962bdSlukemKILLPIDS="$PID"
542de962bdSlukem
552de962bdSlukemsleep 1
562de962bdSlukem
572de962bdSlukemecho "Testing slapd searching..."
582de962bdSlukemfor i in 0 1 2 3 4 5; do
59*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
602de962bdSlukem		'(objectclass=*)' > /dev/null 2>&1
612de962bdSlukem	RC=$?
622de962bdSlukem	if test $RC = 0 ; then
632de962bdSlukem		break
642de962bdSlukem	fi
652de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
662de962bdSlukem	sleep 5
672de962bdSlukemdone
682de962bdSlukem
692de962bdSlukemif test $RC != 0 ; then
702de962bdSlukem	echo "ldapsearch failed ($RC)!"
712de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
722de962bdSlukem	exit $RC
732de962bdSlukemfi
742de962bdSlukem
752de962bdSlukemcat /dev/null > $SEARCHOUT
762de962bdSlukem
772de962bdSlukemecho ""
782de962bdSlukemecho "Testing regular search limits"
792de962bdSlukemecho ""
802de962bdSlukem
812de962bdSlukemecho "Testing no limits requested for unlimited ID..."
82*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
832de962bdSlukem	-D 'cn=Unlimited User,ou=People,dc=example,dc=com' \
842de962bdSlukem	'(objectClass=*)' >$SEARCHOUT 2>&1
852de962bdSlukemRC=$?
862de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
872de962bdSlukemcase $RC in
882de962bdSlukem	0)
892de962bdSlukem		if test x"$COUNT" != x ; then
902de962bdSlukem			echo "...success (got $COUNT entries)"
912de962bdSlukem		else
922de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
932de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
942de962bdSlukem                        exit 1
952de962bdSlukem                fi
962de962bdSlukem	;;
972de962bdSlukem	*)
982de962bdSlukem		echo "ldapsearch failed ($RC)!"
992de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
1002de962bdSlukem		exit $RC
1012de962bdSlukem	;;
1022de962bdSlukemesac
1032de962bdSlukem
1042de962bdSlukemecho "Testing no limits requested for rootdn=$MANAGERDN..."
105*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
1062de962bdSlukem	-D "$MANAGERDN" \
1072de962bdSlukem	'(objectClass=*)' >$SEARCHOUT 2>&1
1082de962bdSlukemRC=$?
1092de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
1102de962bdSlukemcase $RC in
1112de962bdSlukem	0)
1122de962bdSlukem		if test x"$COUNT" != x ; then
1132de962bdSlukem			echo "...success (got $COUNT entries)"
1142de962bdSlukem		else
1152de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
1162de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
1172de962bdSlukem                        exit 1
1182de962bdSlukem                fi
1192de962bdSlukem	;;
1202de962bdSlukem	*)
1212de962bdSlukem		echo "ldapsearch failed ($RC)!"
1222de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
1232de962bdSlukem		exit $RC
1242de962bdSlukem	;;
1252de962bdSlukemesac
1262de962bdSlukem
1272de962bdSlukemSIZELIMIT=4
1282de962bdSlukemecho "Testing limit requested for rootdn=$MANAGERDN..."
129*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
1302de962bdSlukem	-D "$MANAGERDN" \
1312de962bdSlukem	'(objectClass=*)' >$SEARCHOUT 2>&1
1322de962bdSlukemRC=$?
1332de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
1342de962bdSlukemcase $RC in
1352de962bdSlukem	0)
1362de962bdSlukem		if test x"$COUNT" != x ; then
1372de962bdSlukem			if test "$COUNT" -gt "$SIZELIMIT" ; then
1382de962bdSlukem				echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
1392de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
1402de962bdSlukem				exit 1
1412de962bdSlukem			fi
1422de962bdSlukem			echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)"
1432de962bdSlukem		else
1442de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
1452de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
1462de962bdSlukem			exit 1
1472de962bdSlukem		fi
1482de962bdSlukem	;;
1492de962bdSlukem	4)
1502de962bdSlukem		if test x"$COUNT" != x ; then
1512de962bdSlukem			if test "$COUNT" = "$SIZELIMIT" ; then
1522de962bdSlukem				echo "...bumped into requested size limit ($SIZELIMIT)"
1532de962bdSlukem			else
1542de962bdSlukem				echo "...error: got $COUNT entries with a requested sizelimit of $SIZELIMIT"
1552de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
1562de962bdSlukem				exit $RC
1572de962bdSlukem			fi
1582de962bdSlukem		else
1592de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
1602de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
1612de962bdSlukem                        exit $RC
1622de962bdSlukem		fi
1632de962bdSlukem	;;
1642de962bdSlukem	*)
1652de962bdSlukem		echo "ldapsearch failed ($RC)!"
1662de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
1672de962bdSlukem		exit $RC
1682de962bdSlukem	;;
1692de962bdSlukemesac
1702de962bdSlukem
1712de962bdSlukemSIZELIMIT=2
1722de962bdSlukemecho "Testing size limit request ($SIZELIMIT) for unlimited ID..."
173*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
1742de962bdSlukem	-D 'cn=Unlimited User,ou=People,dc=example,dc=com' \
1752de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
1762de962bdSlukemRC=$?
1772de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
1782de962bdSlukemcase $RC in
1792de962bdSlukem	0)
1802de962bdSlukem		if test x"$COUNT" != x ; then
1812de962bdSlukem			if test "$COUNT" -gt "$SIZELIMIT" ; then
1822de962bdSlukem				echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
1832de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
1842de962bdSlukem				exit 1
1852de962bdSlukem			fi
1862de962bdSlukem			echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)"
1872de962bdSlukem		else
1882de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
1892de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
1902de962bdSlukem			exit 1
1912de962bdSlukem		fi
1922de962bdSlukem	;;
1932de962bdSlukem	4)
1942de962bdSlukem		if test x"$COUNT" != x ; then
1952de962bdSlukem			if test "$COUNT" = "$SIZELIMIT" ; then
1962de962bdSlukem				echo "...bumped into requested size limit ($SIZELIMIT)"
1972de962bdSlukem			else
1982de962bdSlukem				echo "...error: got $COUNT entries with a requested sizelimit of $SIZELIMIT"
1992de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
2002de962bdSlukem				exit $RC
2012de962bdSlukem			fi
2022de962bdSlukem		else
2032de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
2042de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
2052de962bdSlukem                        exit $RC
2062de962bdSlukem		fi
2072de962bdSlukem	;;
2082de962bdSlukem	*)
2092de962bdSlukem		echo "ldapsearch failed ($RC)!"
2102de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
2112de962bdSlukem		exit $RC
2122de962bdSlukem	;;
2132de962bdSlukemesac
2142de962bdSlukem
2152de962bdSlukemTIMELIMIT=10
2162de962bdSlukemecho "Testing time limit request ($TIMELIMIT s) for unlimited ID..."
217*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -l $TIMELIMIT \
2182de962bdSlukem	-D 'cn=Unlimited User,ou=People,dc=example,dc=com' \
2192de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
2202de962bdSlukemRC=$?
2212de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
2222de962bdSlukemcase $RC in
2232de962bdSlukem	0)
2242de962bdSlukem		if test x"$COUNT" != x ; then
2252de962bdSlukem			echo "...didn't bump into the requested time limit ($TIMELIMIT s; got $COUNT entries)"
2262de962bdSlukem		else
2272de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
2282de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
2292de962bdSlukem                        exit 1
2302de962bdSlukem                fi
2312de962bdSlukem	;;
2322de962bdSlukem	3)
2332de962bdSlukem		if test x"$COUNT" != x ; then
2342de962bdSlukem			COUNT=0
2352de962bdSlukem		fi
2362de962bdSlukem		echo "...bumped into requested time limit ($TIMELIMIT s; got $COUNT entries)"
2372de962bdSlukem	;;
2382de962bdSlukem	*)
2392de962bdSlukem		echo "ldapsearch failed ($RC)!"
2402de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
2412de962bdSlukem		exit $RC
2422de962bdSlukem	;;
2432de962bdSlukemesac
2442de962bdSlukem
2452de962bdSlukemecho "Testing no limits requested for soft limited ID..."
246*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
2472de962bdSlukem	-D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \
2482de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
2492de962bdSlukemRC=$?
2502de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
2512de962bdSlukemcase $RC in
2522de962bdSlukem	0)
2532de962bdSlukem		if test x"$COUNT" != x ; then
2542de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
2552de962bdSlukem		else
2562de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
2572de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
2582de962bdSlukem                        exit 1
2592de962bdSlukem                fi
2602de962bdSlukem	;;
2612de962bdSlukem	4)
2622de962bdSlukem		if test x"$COUNT" != x ; then
2632de962bdSlukem			echo "...bumped into server-side size limit (got $COUNT entries)"
2642de962bdSlukem		else
2652de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
2662de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
2672de962bdSlukem                        exit $RC
2682de962bdSlukem                fi
2692de962bdSlukem	;;
2702de962bdSlukem	*)
2712de962bdSlukem		echo "ldapsearch failed ($RC)!"
2722de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
2732de962bdSlukem		exit $RC
2742de962bdSlukem	;;
2752de962bdSlukemesac
2762de962bdSlukem
2772de962bdSlukemSIZELIMIT=2
2782de962bdSlukemecho "Testing lower than soft limit request ($SIZELIMIT) for soft limited ID..."
279*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
2802de962bdSlukem	-D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \
2812de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
2822de962bdSlukemRC=$?
2832de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
2842de962bdSlukemcase $RC in
2852de962bdSlukem	0)
2862de962bdSlukem		if test x"$COUNT" != x ; then
2872de962bdSlukem			if test "$COUNT" -gt "$SIZELIMIT" ; then
2882de962bdSlukem				echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
2892de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
2902de962bdSlukem				exit 1
2912de962bdSlukem			fi
2922de962bdSlukem			echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
2932de962bdSlukem		else
2942de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
2952de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
2962de962bdSlukem			exit 1
2972de962bdSlukem		fi
2982de962bdSlukem	;;
2992de962bdSlukem	4)
3002de962bdSlukem		if test "x$COUNT" != "x" ; then
3012de962bdSlukem			if test "x$SIZELIMIT" = "x$COUNT" ; then
3022de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
3032de962bdSlukem			else
3042de962bdSlukem				echo "...bumped into server-side size limit ($COUNT)"
3052de962bdSlukem			fi
3062de962bdSlukem		else
3072de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
3082de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
3092de962bdSlukem                        exit $RC
3102de962bdSlukem		fi
3112de962bdSlukem	;;
3122de962bdSlukem	*)
3132de962bdSlukem		echo "ldapsearch failed ($RC)!"
3142de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3152de962bdSlukem		exit $RC
3162de962bdSlukem	;;
3172de962bdSlukemesac
3182de962bdSlukem
3192de962bdSlukemSIZELIMIT=100
3202de962bdSlukemecho "Testing higher than soft limit request ($SIZELIMIT) for soft limited ID..."
321*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
3222de962bdSlukem	-D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \
3232de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
3242de962bdSlukemRC=$?
3252de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
3262de962bdSlukemcase $RC in
3272de962bdSlukem	0)
3282de962bdSlukem		if test x"$COUNT" != x ; then
3292de962bdSlukem			if test "$COUNT" -gt "$SIZELIMIT" ; then
3302de962bdSlukem				echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
3312de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
3322de962bdSlukem				exit 1
3332de962bdSlukem			fi
3342de962bdSlukem			echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
3352de962bdSlukem		else
3362de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
3372de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
3382de962bdSlukem			exit 1
3392de962bdSlukem		fi
3402de962bdSlukem	;;
3412de962bdSlukem	4)
3422de962bdSlukem		if test "x$COUNT" != "x" ; then
3432de962bdSlukem			if test "x$SIZELIMIT" = "x$COUNT" ; then
3442de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
3452de962bdSlukem			else
3462de962bdSlukem				echo "...bumped into server-side size limit ($COUNT)"
3472de962bdSlukem			fi
3482de962bdSlukem		else
3492de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
3502de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
3512de962bdSlukem                        exit $RC
3522de962bdSlukem		fi
3532de962bdSlukem	;;
3542de962bdSlukem	*)
3552de962bdSlukem		echo "ldapsearch failed ($RC)!"
3562de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3572de962bdSlukem		exit $RC
3582de962bdSlukem	;;
3592de962bdSlukemesac
3602de962bdSlukem
3612de962bdSlukemSIZELIMIT=2
3622de962bdSlukemecho "Testing lower than hard limit request ($SIZELIMIT) for hard limited ID..."
363*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
3642de962bdSlukem	-D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \
3652de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
3662de962bdSlukemRC=$?
3672de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
3682de962bdSlukemcase $RC in
3692de962bdSlukem	0)
3702de962bdSlukem		if test x"$COUNT" != x ; then
3712de962bdSlukem			if test "$COUNT" -gt "$SIZELIMIT" ; then
3722de962bdSlukem				echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
3732de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
3742de962bdSlukem				exit 1
3752de962bdSlukem			fi
3762de962bdSlukem			echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
3772de962bdSlukem		else
3782de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
3792de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
3802de962bdSlukem			exit 1
3812de962bdSlukem		fi
3822de962bdSlukem	;;
3832de962bdSlukem	4)
3842de962bdSlukem		echo "...bumped into requested ($SIZELIMIT) size limit"
3852de962bdSlukem	;;
3862de962bdSlukem	*)
3872de962bdSlukem		echo "ldapsearch failed ($RC)!"
3882de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
3892de962bdSlukem		exit $RC
3902de962bdSlukem	;;
3912de962bdSlukemesac
3922de962bdSlukem
3932de962bdSlukemSIZELIMIT=100
3942de962bdSlukemecho "Testing higher than hard limit request ($SIZELIMIT) for hard limited ID..."
395*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
3962de962bdSlukem	-D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \
3972de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
3982de962bdSlukemRC=$?
3992de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
4002de962bdSlukemcase $RC in
4012de962bdSlukem	0)
4022de962bdSlukem		if test x"$COUNT" != x ; then
4032de962bdSlukem			if test "$COUNT" -gt "$SIZELIMIT" ; then
4042de962bdSlukem				echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
4052de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
4062de962bdSlukem				exit 1
4072de962bdSlukem			fi
4082de962bdSlukem			echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
4092de962bdSlukem		else
4102de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
4112de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
4122de962bdSlukem			exit 1
4132de962bdSlukem		fi
4142de962bdSlukem	;;
4152de962bdSlukem	4)
4162de962bdSlukem		if test x"$COUNT" != x ; then
4172de962bdSlukem			if test "$COUNT" = "$SIZELIMIT" ; then
4182de962bdSlukem				echo "...error: bumped into requested ($SIZELIMIT) size limit"
4192de962bdSlukem                		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4202de962bdSlukem                		exit $RC
4212de962bdSlukem			else
4222de962bdSlukem				echo "...got size limit $COUNT instead of requested $SIZELIMIT entries"
4232de962bdSlukem			fi
4242de962bdSlukem		else
4252de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
4262de962bdSlukem                	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4272de962bdSlukem                	exit $RC
4282de962bdSlukem		fi
4292de962bdSlukem	;;
4302de962bdSlukem#	11)
4312de962bdSlukem#		echo "...bumped into server-side hard size administrative limit"
4322de962bdSlukem#	;;
4332de962bdSlukem	*)
4342de962bdSlukem		echo "ldapsearch failed ($RC)!"
4352de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4362de962bdSlukem		exit $RC
4372de962bdSlukem	;;
4382de962bdSlukemesac
4392de962bdSlukem
4402de962bdSlukemSIZELIMIT=max
4412de962bdSlukemecho "Testing max limit request ($SIZELIMIT) for hard limited ID..."
442*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
4432de962bdSlukem	-D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \
4442de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
4452de962bdSlukemRC=$?
4462de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
4472de962bdSlukemcase $RC in
4482de962bdSlukem	0)
4492de962bdSlukem		if test x"$COUNT" != x ; then
4502de962bdSlukem			echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
4512de962bdSlukem		else
4522de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
4532de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
4542de962bdSlukem			exit 1
4552de962bdSlukem		fi
4562de962bdSlukem	;;
4572de962bdSlukem	4)
4582de962bdSlukem		if test x"$COUNT" != x ; then
4592de962bdSlukem			echo "...bumped into requested ($SIZELIMIT=$COUNT) size limit"
4602de962bdSlukem		else
4612de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
4622de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
4632de962bdSlukem                        exit $RC
4642de962bdSlukem		fi
4652de962bdSlukem	;;
4662de962bdSlukem#	11)
4672de962bdSlukem#		echo "...bumped into server-side hard size administrative limit"
4682de962bdSlukem#	;;
4692de962bdSlukem	*)
4702de962bdSlukem		echo "ldapsearch failed ($RC)!"
4712de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4722de962bdSlukem		exit $RC
4732de962bdSlukem	;;
4742de962bdSlukemesac
4752de962bdSlukem
4762de962bdSlukemecho "Testing lower than unchecked limit request for unchecked limited ID..."
477*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
4782de962bdSlukem	-D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \
4792de962bdSlukem	'(uid=uncheckedlimited)' > $SEARCHOUT 2>&1
4802de962bdSlukemRC=$?
4812de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
4822de962bdSlukemcase $RC in
4832de962bdSlukem	0)
4842de962bdSlukem		if test x"$COUNT" != x ; then
4852de962bdSlukem			echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)"
4862de962bdSlukem		else
4872de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
4882de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
4892de962bdSlukem			exit 1
4902de962bdSlukem		fi
4912de962bdSlukem	;;
4922de962bdSlukem	11)
4932de962bdSlukem		echo "...error: bumped into unchecked administrative limit"
4942de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4952de962bdSlukem		exit $RC
4962de962bdSlukem	;;
4972de962bdSlukem	*)
4982de962bdSlukem		echo "ldapsearch failed ($RC)!"
4992de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5002de962bdSlukem		exit $RC
5012de962bdSlukem	;;
5022de962bdSlukemesac
5032de962bdSlukem
504d11b170bStronif test $INDEXDB = indexdb ; then
5052de962bdSlukem
5062de962bdSlukemecho "Testing higher than unchecked limit requested for unchecked limited ID..."
507*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
5082de962bdSlukem	-D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \
5092de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
5102de962bdSlukemRC=$?
5112de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
5122de962bdSlukemcase $RC in
5132de962bdSlukem	0)
5142de962bdSlukem		if test x"$COUNT" != x ; then
5152de962bdSlukem			echo "...error: didn't bump into server-side unchecked limit (got $COUNT entries)"
5162de962bdSlukem		else
5172de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
5182de962bdSlukem		fi
5192de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5202de962bdSlukem		exit 1
5212de962bdSlukem	;;
5222de962bdSlukem	11)
5232de962bdSlukem		echo "...bumped into unchecked administrative limit"
5242de962bdSlukem	;;
5252de962bdSlukem	*)
5262de962bdSlukem		echo "ldapsearch failed ($RC)!"
5272de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5282de962bdSlukem		exit $RC
5292de962bdSlukem	;;
5302de962bdSlukemesac
5312de962bdSlukem
5322de962bdSlukemecho "Testing no limits requested for unchecked limited group..."
533*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
5342de962bdSlukem	-D 'cn=Unchecked Limited User 2,ou=People,dc=example,dc=com' \
5352de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
5362de962bdSlukemRC=$?
5372de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
5382de962bdSlukemcase $RC in
5392de962bdSlukem	0)
5402de962bdSlukem		if test x"$COUNT" != x ; then
5412de962bdSlukem			echo "...error: didn't bump into server-side unchecked limit (got $COUNT entries)"
5422de962bdSlukem		else
5432de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
5442de962bdSlukem		fi
5452de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5462de962bdSlukem		exit 1
5472de962bdSlukem	;;
5482de962bdSlukem	11)
5492de962bdSlukem		echo "...bumped into unchecked administrative limit"
5502de962bdSlukem	;;
5512de962bdSlukem	*)
5522de962bdSlukem		echo "ldapsearch failed ($RC)!"
5532de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5542de962bdSlukem		exit $RC
5552de962bdSlukem	;;
5562de962bdSlukemesac
557d11b170bStronelse
558d11b170bStron	echo "Skipping test for unchecked limit with $BACKEND backend."
559d11b170bStronfi
5602de962bdSlukem
5612de962bdSlukemecho "Testing no limits requested for limited regex..."
562*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
5632de962bdSlukem	-D 'cn=Foo User,ou=People,dc=example,dc=com' \
5642de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
5652de962bdSlukemRC=$?
5662de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
5672de962bdSlukemcase $RC in
5682de962bdSlukem	0)
5692de962bdSlukem		if test x"$COUNT" != x ; then
5702de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
5712de962bdSlukem		else
5722de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
5732de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
5742de962bdSlukem			exit 1
5752de962bdSlukem		fi
5762de962bdSlukem	;;
5772de962bdSlukem	4)
5782de962bdSlukem		if test "x$COUNT" != "x" ; then
5792de962bdSlukem			echo "...bumped into server-side size limit ($COUNT)"
5802de962bdSlukem		else
5812de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
5822de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
5832de962bdSlukem			exit $RC
5842de962bdSlukem		fi
5852de962bdSlukem	;;
5862de962bdSlukem	*)
5872de962bdSlukem		echo "ldapsearch failed ($RC)!"
5882de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
5892de962bdSlukem		exit $RC
5902de962bdSlukem	;;
5912de962bdSlukemesac
5922de962bdSlukem
5932de962bdSlukemecho "Testing no limits requested for limited onelevel..."
594*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
5952de962bdSlukem	-D 'cn=Bar User,ou=People,dc=example,dc=com' \
5962de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
5972de962bdSlukemRC=$?
5982de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
5992de962bdSlukemcase $RC in
6002de962bdSlukem	0)
6012de962bdSlukem		if test x"$COUNT" != x ; then
6022de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
6032de962bdSlukem		else
6042de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
6052de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
6062de962bdSlukem			exit 1
6072de962bdSlukem		fi
6082de962bdSlukem	;;
6092de962bdSlukem	4)
6102de962bdSlukem		if test "x$COUNT" != "x" ; then
6112de962bdSlukem			echo "...bumped into server-side size limit ($COUNT)"
6122de962bdSlukem		else
6132de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
6142de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
6152de962bdSlukem			exit $RC
6162de962bdSlukem		fi
6172de962bdSlukem	;;
6182de962bdSlukem	*)
6192de962bdSlukem		echo "ldapsearch failed ($RC)!"
6202de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
6212de962bdSlukem		exit $RC
6222de962bdSlukem	;;
6232de962bdSlukemesac
6242de962bdSlukem
6252de962bdSlukemecho "Testing no limit requested for limited children..."
626*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
6272de962bdSlukem	-D 'cn=Unchecked Limited Users,ou=Groups,dc=example,dc=com' \
6282de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
6292de962bdSlukemRC=$?
6302de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
6312de962bdSlukemcase $RC in
6322de962bdSlukem	0)
6332de962bdSlukem		if test x"$COUNT" != x ; then
6342de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
6352de962bdSlukem		else
6362de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
6372de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
6382de962bdSlukem			exit 1
6392de962bdSlukem		fi
6402de962bdSlukem	;;
6412de962bdSlukem	4)
6422de962bdSlukem		if test "x$COUNT" != "x" ; then
6432de962bdSlukem			echo "...bumped into server-side size limit ($COUNT)"
6442de962bdSlukem		else
6452de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
6462de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
6472de962bdSlukem			exit $RC
6482de962bdSlukem		fi
6492de962bdSlukem	;;
6502de962bdSlukem	*)
6512de962bdSlukem		echo "ldapsearch failed ($RC)!"
6522de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
6532de962bdSlukem		exit $RC
6542de962bdSlukem	;;
6552de962bdSlukemesac
6562de962bdSlukem
6572de962bdSlukemecho "Testing no limit requested for limited subtree..."
658*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
6592de962bdSlukem	-D 'cn=Unchecked Limited User 3,ou=Admin,dc=example,dc=com' \
6602de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
6612de962bdSlukemRC=$?
6622de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
6632de962bdSlukemcase $RC in
6642de962bdSlukem	0)
6652de962bdSlukem		if test x"$COUNT" != x ; then
6662de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
6672de962bdSlukem		else
6682de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
6692de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
6702de962bdSlukem			exit 1
6712de962bdSlukem		fi
6722de962bdSlukem	;;
6732de962bdSlukem	4)
6742de962bdSlukem		if test "x$COUNT" != "x" ; then
6752de962bdSlukem			echo "...bumped into server-side size limit ($COUNT)"
6762de962bdSlukem		else
6772de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
6782de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
6792de962bdSlukem			exit $RC
6802de962bdSlukem		fi
6812de962bdSlukem	;;
6822de962bdSlukem	*)
6832de962bdSlukem		echo "ldapsearch failed ($RC)!"
6842de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
6852de962bdSlukem		exit $RC
6862de962bdSlukem	;;
6872de962bdSlukemesac
6882de962bdSlukem
6892de962bdSlukemecho "Testing no limit requested for limited users..."
690*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
6912de962bdSlukem	-D 'cn=Special User,dc=example,dc=com' \
6922de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
6932de962bdSlukemRC=$?
6942de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
6952de962bdSlukemcase $RC in
6962de962bdSlukem	0)
6972de962bdSlukem		if test x"$COUNT" != x ; then
6982de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
6992de962bdSlukem		else
7002de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
7012de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
7022de962bdSlukem			exit 1
7032de962bdSlukem		fi
7042de962bdSlukem	;;
7052de962bdSlukem	4)
7062de962bdSlukem		if test "x$COUNT" != "x" ; then
7072de962bdSlukem			echo "...bumped into server-side size limit ($COUNT)"
7082de962bdSlukem		else
7092de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
7102de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
7112de962bdSlukem			exit $RC
7122de962bdSlukem		fi
7132de962bdSlukem	;;
7142de962bdSlukem	*)
7152de962bdSlukem		echo "ldapsearch failed ($RC)!"
7162de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
7172de962bdSlukem		exit $RC
7182de962bdSlukem	;;
7192de962bdSlukemesac
7202de962bdSlukem
7212de962bdSlukemecho "Testing no limit requested for limited anonymous..."
722*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 \
7232de962bdSlukem	'(objectClass=*)' > $SEARCHOUT 2>&1
7242de962bdSlukemRC=$?
7252de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
7262de962bdSlukemcase $RC in
7272de962bdSlukem	0)
7282de962bdSlukem		if test x"$COUNT" != x ; then
7292de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
7302de962bdSlukem		else
7312de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
7322de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
7332de962bdSlukem			exit 1
7342de962bdSlukem		fi
7352de962bdSlukem	;;
7362de962bdSlukem	4)
7372de962bdSlukem		if test "x$COUNT" != "x" ; then
7382de962bdSlukem			echo "...bumped into server-side size limit ($COUNT)"
7392de962bdSlukem		else
7402de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
7412de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
7422de962bdSlukem			exit $RC
7432de962bdSlukem		fi
7442de962bdSlukem	;;
7452de962bdSlukem	*)
7462de962bdSlukem		echo "ldapsearch failed ($RC)!"
7472de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
7482de962bdSlukem		exit $RC
7492de962bdSlukem	;;
7502de962bdSlukemesac
7512de962bdSlukem
752d11b170bStronif test $MAINDB != maindb ; then
753*e670fd5cSchristos		# only mdb currently supports pagedResults control
7542de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
7552de962bdSlukem
7562de962bdSlukem		echo ">>>>> Test succeeded"
7572de962bdSlukem		exit 0
758d11b170bStronfi
7592de962bdSlukem
7602de962bdSlukemif test x"$SLAPD_PAGE_SIZE" != x ; then
7612de962bdSlukem	PAGESIZE="$SLAPD_PAGE_SIZE"
7622de962bdSlukem	if test "$PAGESIZE" -le 0 ; then
7632de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
7642de962bdSlukem
7652de962bdSlukem		echo ""
7662de962bdSlukem		echo "Testing with pagedResults control disabled"
7672de962bdSlukem		echo ""
7682de962bdSlukem		echo ">>>>> Test succeeded"
7692de962bdSlukem		exit 0
7702de962bdSlukem	fi
7712de962bdSlukemelse
7722de962bdSlukem	PAGESIZE=5
7732de962bdSlukemfi
7742de962bdSlukem
7752de962bdSlukemecho ""
7762de962bdSlukemecho "Testing regular search limits with pagedResults control (page size $PAGESIZE)"
7772de962bdSlukemecho ""
7782de962bdSlukem
7792de962bdSlukemecho "Testing no limits requested for unlimited ID..."
780*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
7812de962bdSlukem	-D 'cn=Unlimited User,ou=People,dc=example,dc=com' \
7822de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' >$SEARCHOUT 2>&1
7832de962bdSlukemRC=$?
7842de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
7852de962bdSlukemcase $RC in
7862de962bdSlukem	0)
7872de962bdSlukem		if test x"$COUNT" != x ; then
7882de962bdSlukem			echo "...success (got $COUNT entries)"
7892de962bdSlukem		else
7902de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
7912de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
7922de962bdSlukem                        exit 1
7932de962bdSlukem                fi
7942de962bdSlukem	;;
7952de962bdSlukem	*)
7962de962bdSlukem		echo "ldapsearch failed ($RC)!"
7972de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
7982de962bdSlukem		exit $RC
7992de962bdSlukem	;;
8002de962bdSlukemesac
8012de962bdSlukem
8022de962bdSlukemSIZELIMIT=2
8032de962bdSlukemecho "Testing size limit request ($SIZELIMIT) for unlimited ID..."
804*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
8052de962bdSlukem	-D 'cn=Unlimited User,ou=People,dc=example,dc=com' \
8062de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
8072de962bdSlukemRC=$?
8082de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
8092de962bdSlukemcase $RC in
8102de962bdSlukem	0)
8112de962bdSlukem		if test x"$COUNT" != x ; then
8122de962bdSlukem                        if test "$COUNT" -gt "$SIZELIMIT" ; then
8132de962bdSlukem                                echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
8142de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
8152de962bdSlukem                                exit 1
8162de962bdSlukem                        fi
8172de962bdSlukem                        echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)"
8182de962bdSlukem                else
8192de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
8202de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
8212de962bdSlukem                        exit 1
8222de962bdSlukem                fi
8232de962bdSlukem	;;
8242de962bdSlukem	4)
8252de962bdSlukem		if test x"$COUNT" != x ; then
8262de962bdSlukem			if test $COUNT = $SIZELIMIT ; then
8272de962bdSlukem				echo "...bumped into requested size limit ($SIZELIMIT)"
8282de962bdSlukem			else
8292de962bdSlukem				echo "...error: got $COUNT entries while requesting $SIZELIMIT..."
8302de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
8312de962bdSlukem                                exit $RC
8322de962bdSlukem                        fi
8332de962bdSlukem		else
8342de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
8352de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
8362de962bdSlukem                        exit $RC
8372de962bdSlukem		fi
8382de962bdSlukem	;;
8392de962bdSlukem	*)
8402de962bdSlukem		echo "ldapsearch failed ($RC)!"
8412de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
8422de962bdSlukem		exit $RC
8432de962bdSlukem	;;
8442de962bdSlukemesac
8452de962bdSlukem
8462de962bdSlukemTIMELIMIT=10
8472de962bdSlukemecho "Testing time limit request ($TIMELIMIT s) for unlimited ID..."
848*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -l $TIMELIMIT \
8492de962bdSlukem	-D 'cn=Unlimited User,ou=People,dc=example,dc=com' \
8502de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
8512de962bdSlukemRC=$?
8522de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
8532de962bdSlukemcase $RC in
8542de962bdSlukem	0)
8552de962bdSlukem		if test x"$COUNT" != x ; then
8562de962bdSlukem			echo "...didn't bump into the requested time limit ($TIMELIMIT s; got $COUNT entries)"
8572de962bdSlukem		else
8582de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
8592de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
8602de962bdSlukem                        exit 1
8612de962bdSlukem                fi
8622de962bdSlukem	;;
8632de962bdSlukem	3)
8642de962bdSlukem		if test x"$COUNT" = x ; then
8652de962bdSlukem			COUNT=0
8662de962bdSlukem		fi
8672de962bdSlukem		echo "...bumped into requested time limit ($TIMELIMIT s; got $COUNT entries)"
8682de962bdSlukem	;;
8692de962bdSlukem	*)
8702de962bdSlukem		echo "ldapsearch failed ($RC)!"
8712de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
8722de962bdSlukem		exit $RC
8732de962bdSlukem	;;
8742de962bdSlukemesac
8752de962bdSlukem
8762de962bdSlukemecho "Testing no limits requested for soft limited ID..."
877*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
8782de962bdSlukem	-D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \
8792de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
8802de962bdSlukemRC=$?
8812de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
8822de962bdSlukemcase $RC in
8832de962bdSlukem	0)
8842de962bdSlukem		if test x"$COUNT" != x ; then
8852de962bdSlukem			echo "...didn't bump into server-side size limit (got $COUNT entries)"
8862de962bdSlukem		else
8872de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
8882de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
8892de962bdSlukem                        exit 1
8902de962bdSlukem		fi
8912de962bdSlukem	;;
8922de962bdSlukem	4)
8932de962bdSlukem		if test x"$COUNT" != x ; then
8942de962bdSlukem			echo "...bumped into server-side size limit (got $COUNT entries)"
8952de962bdSlukem		else
8962de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
8972de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
8982de962bdSlukem                        exit $RC
8992de962bdSlukem		fi
9002de962bdSlukem	;;
9012de962bdSlukem	*)
9022de962bdSlukem		echo "ldapsearch failed ($RC)!"
9032de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
9042de962bdSlukem		exit $RC
9052de962bdSlukem	;;
9062de962bdSlukemesac
9072de962bdSlukem
9082de962bdSlukemSIZELIMIT=2
9092de962bdSlukemecho "Testing lower than soft limit request ($SIZELIMIT) for soft limited ID..."
910*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
9112de962bdSlukem	-D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \
9122de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
9132de962bdSlukemRC=$?
9142de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
9152de962bdSlukemcase $RC in
9162de962bdSlukem	0)
9172de962bdSlukem		if test x"$COUNT" != x ; then
9182de962bdSlukem                        if test "$COUNT" -gt "$SIZELIMIT" ; then
9192de962bdSlukem                                echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
9202de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
9212de962bdSlukem                                exit 1
9222de962bdSlukem                        fi
9232de962bdSlukem                        echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
9242de962bdSlukem                else
9252de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
9262de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
9272de962bdSlukem                        exit 1
9282de962bdSlukem                fi
9292de962bdSlukem	;;
9302de962bdSlukem	4)
9312de962bdSlukem		if test "x$COUNT" != "x" ; then
9322de962bdSlukem			if test "x$SIZELIMIT" = "x$COUNT" ; then
9332de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
9342de962bdSlukem			else
9352de962bdSlukem				echo "...bumped into server-side size limit ($COUNT)"
9362de962bdSlukem			fi
9372de962bdSlukem		else
9382de962bdSlukem			echo "...bumped into either requested ($SIZELIMIT) or server-side size limit"
9392de962bdSlukem		fi
9402de962bdSlukem	;;
9412de962bdSlukem	*)
9422de962bdSlukem		echo "ldapsearch failed ($RC)!"
9432de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
9442de962bdSlukem		exit $RC
9452de962bdSlukem	;;
9462de962bdSlukemesac
9472de962bdSlukem
9482de962bdSlukemSIZELIMIT=100
9492de962bdSlukemecho "Testing higher than soft limit request ($SIZELIMIT) for soft limited ID..."
950*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
9512de962bdSlukem	-D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \
9522de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
9532de962bdSlukemRC=$?
9542de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
9552de962bdSlukemcase $RC in
9562de962bdSlukem	0)
9572de962bdSlukem		if test x"$COUNT" != x ; then
9582de962bdSlukem                        if test "$COUNT" -gt "$SIZELIMIT" ; then
9592de962bdSlukem                                echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
9602de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
9612de962bdSlukem                                exit 1
9622de962bdSlukem                        fi
9632de962bdSlukem                        echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
9642de962bdSlukem                else
9652de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
9662de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
9672de962bdSlukem                        exit 1
9682de962bdSlukem                fi
9692de962bdSlukem	;;
9702de962bdSlukem	4)
9712de962bdSlukem		if test "x$COUNT" != "x" ; then
9722de962bdSlukem			if test "x$SIZELIMIT" = "x$COUNT" ; then
9732de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
9742de962bdSlukem			else
9752de962bdSlukem				echo "...bumped into server-side size limit ($COUNT)"
9762de962bdSlukem			fi
9772de962bdSlukem		else
9782de962bdSlukem			echo "...bumped into either requested ($SIZELIMIT) or server-side size limit"
9792de962bdSlukem		fi
9802de962bdSlukem	;;
9812de962bdSlukem	*)
9822de962bdSlukem		echo "ldapsearch failed ($RC)!"
9832de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
9842de962bdSlukem		exit $RC
9852de962bdSlukem	;;
9862de962bdSlukemesac
9872de962bdSlukem
9882de962bdSlukemSIZELIMIT=2
9892de962bdSlukemecho "Testing lower than hard limit request ($SIZELIMIT) for hard limited ID..."
990*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
9912de962bdSlukem	-D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \
9922de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
9932de962bdSlukemRC=$?
9942de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
9952de962bdSlukemcase $RC in
9962de962bdSlukem	0)
9972de962bdSlukem		if test x"$COUNT" != x ; then
9982de962bdSlukem                        if test "$COUNT" -gt "$SIZELIMIT" ; then
9992de962bdSlukem                                echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
10002de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
10012de962bdSlukem                                exit 1
10022de962bdSlukem                        fi
10032de962bdSlukem                        echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
10042de962bdSlukem                else
10052de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
10062de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
10072de962bdSlukem                        exit 1
10082de962bdSlukem                fi
10092de962bdSlukem	;;
10102de962bdSlukem	4)
10112de962bdSlukem		if test x"$COUNT" != x ; then
10122de962bdSlukem			if test "$COUNT" = "$SIZELIMIT" ; then
10132de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
10142de962bdSlukem			else
10152de962bdSlukem				echo "...error: got size limit $SIZELIMIT but $COUNT entries"
10162de962bdSlukem                        	test $KILLSERVERS != no && kill -HUP $KILLPIDS
10172de962bdSlukem                        	exit $RC
10182de962bdSlukem                	fi
10192de962bdSlukem		else
10202de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
10212de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
10222de962bdSlukem                        exit $RC
10232de962bdSlukem                fi
10242de962bdSlukem	;;
10252de962bdSlukem	*)
10262de962bdSlukem		echo "ldapsearch failed ($RC)!"
10272de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
10282de962bdSlukem		exit $RC
10292de962bdSlukem	;;
10302de962bdSlukemesac
10312de962bdSlukem
10322de962bdSlukemSIZELIMIT=100
10332de962bdSlukemecho "Testing higher than hard limit request ($SIZELIMIT) for hard limited ID..."
1034*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
10352de962bdSlukem	-D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \
10362de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
10372de962bdSlukemRC=$?
10382de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
10392de962bdSlukemcase $RC in
10402de962bdSlukem	0)
10412de962bdSlukem		if test x"$COUNT" != x ; then
10422de962bdSlukem                        if test "$COUNT" -gt "$SIZELIMIT" ; then
10432de962bdSlukem                                echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
10442de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
10452de962bdSlukem                                exit 1
10462de962bdSlukem                        fi
10472de962bdSlukem                        echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
10482de962bdSlukem                else
10492de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
10502de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
10512de962bdSlukem                        exit 1
10522de962bdSlukem                fi
10532de962bdSlukem	;;
10542de962bdSlukem	4)
10552de962bdSlukem		if test x"$COUNT" != x ; then
10562de962bdSlukem			if test "$COUNT" = "$SIZELIMIT" ; then
10572de962bdSlukem				echo "...error: bumped into requested ($SIZELIMIT) size limit"
10582de962bdSlukem                		test $KILLSERVERS != no && kill -HUP $KILLPIDS
10592de962bdSlukem                		exit $RC
10602de962bdSlukem			else
10612de962bdSlukem				echo "...got size limit $COUNT instead of requested $SIZELIMIT entries"
10622de962bdSlukem			fi
10632de962bdSlukem		else
10642de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
10652de962bdSlukem                	test $KILLSERVERS != no && kill -HUP $KILLPIDS
10662de962bdSlukem                	exit $RC
10672de962bdSlukem		fi
10682de962bdSlukem	;;
10692de962bdSlukem#	11)
10702de962bdSlukem#		echo "...bumped into hard size administrative limit"
10712de962bdSlukem#	;;
10722de962bdSlukem	*)
10732de962bdSlukem		echo "ldapsearch failed ($RC)!"
10742de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
10752de962bdSlukem		exit $RC
10762de962bdSlukem	;;
10772de962bdSlukemesac
10782de962bdSlukem
10792de962bdSlukemSIZELIMIT=max
10802de962bdSlukemecho "Testing max limit request ($SIZELIMIT) for hard limited ID..."
1081*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
10822de962bdSlukem	-D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \
10832de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
10842de962bdSlukemRC=$?
10852de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
10862de962bdSlukemcase $RC in
10872de962bdSlukem	0)
10882de962bdSlukem		if test x"$COUNT" != x ; then
10892de962bdSlukem                        echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)"
10902de962bdSlukem                else
10912de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
10922de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
10932de962bdSlukem                        exit 1
10942de962bdSlukem                fi
10952de962bdSlukem	;;
10962de962bdSlukem	4)
10972de962bdSlukem		if test x"$COUNT" != x ; then
10982de962bdSlukem			echo "...bumped into requested ($SIZELIMIT=$COUNT) size limit"
10992de962bdSlukem		else
11002de962bdSlukem			echo "...error: bumped into size limit but got no entries!"
11012de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
11022de962bdSlukem			exit $RC
11032de962bdSlukem		fi
11042de962bdSlukem	;;
11052de962bdSlukem#	11)
11062de962bdSlukem#		echo "...bumped into hard size administrative limit"
11072de962bdSlukem#	;;
11082de962bdSlukem	*)
11092de962bdSlukem		echo "ldapsearch failed ($RC)!"
11102de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
11112de962bdSlukem		exit $RC
11122de962bdSlukem	;;
11132de962bdSlukemesac
11142de962bdSlukem
11152de962bdSlukemecho "Testing lower than unchecked limit request for unchecked limited ID..."
1116*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
11172de962bdSlukem	-D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \
11182de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(uid=uncheckedlimited)' > $SEARCHOUT 2>&1
11192de962bdSlukemRC=$?
11202de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
11212de962bdSlukemcase $RC in
11222de962bdSlukem	0)
11232de962bdSlukem		if test x"$COUNT" != x ; then
11242de962bdSlukem                        echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)"
11252de962bdSlukem                else
11262de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
11272de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
11282de962bdSlukem                        exit 1
11292de962bdSlukem                fi
11302de962bdSlukem	;;
11312de962bdSlukem#	11)
11322de962bdSlukem#		echo "...bumped into unchecked administrative limit"
11332de962bdSlukem#	;;
11342de962bdSlukem	*)
11352de962bdSlukem		echo "ldapsearch failed ($RC)!"
11362de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
11372de962bdSlukem		exit $RC
11382de962bdSlukem	;;
11392de962bdSlukemesac
11402de962bdSlukem
11412de962bdSlukemecho "Testing higher than unchecked limit requested for unchecked limited ID..."
1142*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
11432de962bdSlukem	-D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \
11442de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
11452de962bdSlukemRC=$?
11462de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
11472de962bdSlukemcase $RC in
11482de962bdSlukem	0)
11492de962bdSlukem		if test x"$COUNT" != x ; then
11502de962bdSlukem                        echo "...error: didn't bump into server-side unchecked limit (got $COUNT entries)"
11512de962bdSlukem                else
11522de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
11532de962bdSlukem                fi
11542de962bdSlukem                test $KILLSERVERS != no && kill -HUP $KILLPIDS
11552de962bdSlukem                exit 1
11562de962bdSlukem	;;
11572de962bdSlukem	11)
11582de962bdSlukem		echo "...bumped into unchecked administrative limit"
11592de962bdSlukem	;;
11602de962bdSlukem	*)
11612de962bdSlukem		echo "ldapsearch failed ($RC)!"
11622de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
11632de962bdSlukem		exit $RC
11642de962bdSlukem	;;
11652de962bdSlukemesac
11662de962bdSlukem
11672de962bdSlukemecho ""
11682de962bdSlukemecho "Testing specific search limits with pagedResults control"
11692de962bdSlukemecho ""
11702de962bdSlukem
11712de962bdSlukemecho "Testing no limit requested for unlimited page size ID..."
1172*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
11732de962bdSlukem	-D 'cn=Unlimited User,ou=Paged Results Users,dc=example,dc=com' \
11742de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
11752de962bdSlukemRC=$?
11762de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
11772de962bdSlukemcase $RC in
11782de962bdSlukem	0)
11792de962bdSlukem		if test x"$COUNT" != x ; then
11802de962bdSlukem			echo "...success; didn't bump into server-side size limit (got $COUNT entries)"
11812de962bdSlukem		else
11822de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
11832de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
11842de962bdSlukem                        exit 1
11852de962bdSlukem                fi
11862de962bdSlukem	;;
11872de962bdSlukem	4)
11882de962bdSlukem		if test x"$COUNT" != x ; then
11892de962bdSlukem			echo "...bumped into server-side size limit (got $COUNT entries)"
11902de962bdSlukem		else
11912de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
11922de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
11932de962bdSlukem                        exit $RC
11942de962bdSlukem		fi
11952de962bdSlukem	;;
11962de962bdSlukem	*)
11972de962bdSlukem		echo "ldapsearch failed ($RC)!"
11982de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
11992de962bdSlukem		exit $RC
12002de962bdSlukem	;;
12012de962bdSlukemesac
12022de962bdSlukem
12032de962bdSlukemecho "Testing no limit requested for limited page size ID..."
1204*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
12052de962bdSlukem	-D 'cn=Page Size Limited User,ou=Paged Results Users,dc=example,dc=com' \
12062de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
12072de962bdSlukemRC=$?
12082de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
12092de962bdSlukemcase $RC in
12102de962bdSlukem	0)
12112de962bdSlukem		echo "...success; didn't bump into server-side page size limit (got $COUNT entries)"
12122de962bdSlukem	;;
12132de962bdSlukem	4)
12142de962bdSlukem		echo "...bumped into page size limit ($COUNT)"
12152de962bdSlukem	;;
12162de962bdSlukem	11)
12172de962bdSlukem		echo "...bumped into page size administrative limit"
12182de962bdSlukem	;;
12192de962bdSlukem	*)
12202de962bdSlukem		echo "ldapsearch failed ($RC)!"
12212de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
12222de962bdSlukem		exit $RC
12232de962bdSlukem	;;
12242de962bdSlukemesac
12252de962bdSlukem
12262de962bdSlukemecho "Testing no limit requested for pagedResults disabled ID..."
1227*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
12282de962bdSlukem	-D 'cn=Paged Results Disabled User,ou=Paged Results Users,dc=example,dc=com' \
12292de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
12302de962bdSlukemRC=$?
12312de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
12322de962bdSlukemcase $RC in
12332de962bdSlukem	0)
12342de962bdSlukem		echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)"
12352de962bdSlukem	;;
12362de962bdSlukem	4)
12372de962bdSlukem		echo "...bumped into server-side size limit ($COUNT)"
12382de962bdSlukem	;;
12392de962bdSlukem	11)
12402de962bdSlukem		echo "...bumped into pagedResults disabled administrative limit"
12412de962bdSlukem	;;
12422de962bdSlukem	*)
12432de962bdSlukem		echo "ldapsearch failed ($RC)!"
12442de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
12452de962bdSlukem		exit $RC
12462de962bdSlukem	;;
12472de962bdSlukemesac
12482de962bdSlukem
12492de962bdSlukemecho "Testing no limit requested for pagedResults total count limited ID..."
1250*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
12512de962bdSlukem	-D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \
12522de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
12532de962bdSlukemRC=$?
12542de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
12552de962bdSlukemcase $RC in
12562de962bdSlukem	0)
12572de962bdSlukem		echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)"
12582de962bdSlukem	;;
12592de962bdSlukem	4)
12602de962bdSlukem		echo "...bumped into server-side size limit ($COUNT)"
12612de962bdSlukem	;;
12622de962bdSlukem	11)
12632de962bdSlukem		echo "...bumped into pagedResults total count administrative limit"
12642de962bdSlukem	;;
12652de962bdSlukem	*)
12662de962bdSlukem		echo "ldapsearch failed ($RC)!"
12672de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
12682de962bdSlukem		exit $RC
12692de962bdSlukem	;;
12702de962bdSlukemesac
12712de962bdSlukem
12722de962bdSlukemSIZELIMIT=8
12732de962bdSlukemecho "Testing higher than hard but lower then total count limit requested for pagedResults total count limited ID..."
1274*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
12752de962bdSlukem	-D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \
12762de962bdSlukem	-z $SIZELIMIT -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
12772de962bdSlukemRC=$?
12782de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
12792de962bdSlukemcase $RC in
12802de962bdSlukem	0)
12812de962bdSlukem		echo "...success; didn't bump into either requested ($SIZELIMIT) or server-side unchecked limit (got $COUNT entries)"
12822de962bdSlukem	;;
12832de962bdSlukem	4)
12842de962bdSlukem		if test "x$COUNT" != "x" ; then
12852de962bdSlukem			if test "x$SIZELIMIT" = "x$COUNT" ; then
12862de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
12872de962bdSlukem			else
12882de962bdSlukem				echo "...bumped into server-side size limit ($COUNT)"
12892de962bdSlukem			fi
12902de962bdSlukem		else
12912de962bdSlukem			echo "...bumped into either requested ($SIZELIMIT) or server-side size limit"
12922de962bdSlukem		fi
12932de962bdSlukem	;;
12942de962bdSlukem	11)
12952de962bdSlukem		echo "...bumped into either hard size or pagedResults total count administrative limit"
12962de962bdSlukem	;;
12972de962bdSlukem	*)
12982de962bdSlukem		echo "ldapsearch failed ($RC)!"
12992de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
13002de962bdSlukem		exit $RC
13012de962bdSlukem	;;
13022de962bdSlukemesac
13032de962bdSlukem
13042de962bdSlukemSIZELIMIT=15
13052de962bdSlukemecho "Testing higher than total count limit requested for pagedResults total count limited ID..."
1306*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
13072de962bdSlukem	-D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \
13082de962bdSlukem	-z $SIZELIMIT -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
13092de962bdSlukemRC=$?
13102de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
13112de962bdSlukemcase $RC in
13122de962bdSlukem	0)
13132de962bdSlukem		echo "...success; didn't bump into either requested ($SIZELIMIT) or server-side unchecked limit (got $COUNT entries)"
13142de962bdSlukem	;;
13152de962bdSlukem	4)
13162de962bdSlukem		if test "x$COUNT" != "x" ; then
13172de962bdSlukem			if test "x$SIZELIMIT" = "x$COUNT" ; then
13182de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
13192de962bdSlukem			else
13202de962bdSlukem				echo "...bumped into server-side size limit ($COUNT)"
13212de962bdSlukem			fi
13222de962bdSlukem		else
13232de962bdSlukem			echo "...bumped into either requested ($SIZELIMIT) or server-side size limit"
13242de962bdSlukem		fi
13252de962bdSlukem	;;
13262de962bdSlukem	11)
13272de962bdSlukem		echo "...bumped into pagedResults total count administrative limit"
13282de962bdSlukem	;;
13292de962bdSlukem	*)
13302de962bdSlukem		echo "ldapsearch failed ($RC)!"
13312de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
13322de962bdSlukem		exit $RC
13332de962bdSlukem	;;
13342de962bdSlukemesac
13352de962bdSlukem
13362de962bdSlukemSIZELIMIT=max
13372de962bdSlukemecho "Testing max limit requested for pagedResults total count limited ID..."
1338*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \
13392de962bdSlukem	-D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \
13402de962bdSlukem	-z $SIZELIMIT -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
13412de962bdSlukemRC=$?
13422de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
13432de962bdSlukemcase $RC in
13442de962bdSlukem	0)
13452de962bdSlukem		echo "...success; didn't bump into either requested ($SIZELIMIT) or server-side unchecked limit (got $COUNT entries)"
13462de962bdSlukem	;;
13472de962bdSlukem	4)
13482de962bdSlukem		if test "x$COUNT" != "x" ; then
13492de962bdSlukem			if test "x$SIZELIMIT" = "x$COUNT" ; then
13502de962bdSlukem				echo "...bumped into requested ($SIZELIMIT) size limit"
13512de962bdSlukem			else
13522de962bdSlukem				echo "...bumped into server-side size limit ($COUNT)"
13532de962bdSlukem			fi
13542de962bdSlukem		else
13552de962bdSlukem			echo "...bumped into either requested ($SIZELIMIT) or server-side size limit"
13562de962bdSlukem		fi
13572de962bdSlukem	;;
13582de962bdSlukem	11)
13592de962bdSlukem		echo "...bumped into pagedResults total count administrative limit"
13602de962bdSlukem	;;
13612de962bdSlukem	*)
13622de962bdSlukem		echo "ldapsearch failed ($RC)!"
13632de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
13642de962bdSlukem		exit $RC
13652de962bdSlukem	;;
13662de962bdSlukemesac
13672de962bdSlukem
13682de962bdSlukem# ITS#4479
13692de962bdSlukemPAGESIZE=1
13702de962bdSlukemSIZELIMIT=2
13712de962bdSlukemecho "Testing size limit request ($SIZELIMIT) for unlimited ID and pagesize=$PAGESIZE..."
1372*e670fd5cSchristos$LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \
13732de962bdSlukem	-D 'cn=Unlimited User,ou=People,dc=example,dc=com' \
13742de962bdSlukem	-E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1
13752de962bdSlukemRC=$?
13762de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT`
13772de962bdSlukemcase $RC in
13782de962bdSlukem	0)
13792de962bdSlukem		if test x"$COUNT" != x ; then
13802de962bdSlukem                        if test "$COUNT" -gt "$SIZELIMIT" ; then
13812de962bdSlukem                                echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
13822de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
13832de962bdSlukem                                exit 1
13842de962bdSlukem                        fi
13852de962bdSlukem                        echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)"
13862de962bdSlukem                else
13872de962bdSlukem                        echo "...error: did not expect ldapsearch success ($RC)!"
13882de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
13892de962bdSlukem                        exit 1
13902de962bdSlukem                fi
13912de962bdSlukem	;;
13922de962bdSlukem	4)
13932de962bdSlukem		if test x"$COUNT" != x ; then
13942de962bdSlukem			if test $COUNT = $SIZELIMIT ; then
13952de962bdSlukem				echo "...bumped into requested size limit ($SIZELIMIT)"
13962de962bdSlukem			else
13972de962bdSlukem				echo "...error: got $COUNT entries while requesting $SIZELIMIT..."
13982de962bdSlukem                                test $KILLSERVERS != no && kill -HUP $KILLPIDS
13992de962bdSlukem                                exit $RC
14002de962bdSlukem                        fi
14012de962bdSlukem		else
14022de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
14032de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
14042de962bdSlukem                        exit $RC
14052de962bdSlukem		fi
14062de962bdSlukem	;;
14072de962bdSlukem	*)
14082de962bdSlukem		echo "ldapsearch failed ($RC)!"
14092de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
14102de962bdSlukem		exit $RC
14112de962bdSlukem	;;
14122de962bdSlukemesac
14132de962bdSlukem
14142de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
14152de962bdSlukem
14162de962bdSlukemecho ">>>>> Test succeeded"
14172de962bdSlukem
14182de962bdSlukemtest $KILLSERVERS != no && wait
14192de962bdSlukem
14202de962bdSlukemexit 0
1421