1 1.1 lukem #! /bin/sh 2 1.1.1.4 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.10 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 ## FIXME: need to exclude legal but wrong results... 17 1.1 lukem 18 1.1 lukem echo "running defines.sh" 19 1.1 lukem . $SRCDIR/scripts/defines.sh 20 1.1 lukem 21 1.1.1.3 adam if test $BACKEND = null; then 22 1.1.1.3 adam echo "Limits irrelevant to $BACKEND backend, test skipped" 23 1.1.1.3 adam exit 0 24 1.1.1.3 adam fi 25 1.1.1.3 adam 26 1.1 lukem mkdir -p $TESTDIR $DBDIR1 27 1.1 lukem 28 1.1 lukem echo "Running slapadd to build slapd database..." 29 1.1.1.9 christos . $CONFFILTER $BACKEND < $LIMITSCONF > $ADDCONF 30 1.1 lukem $SLAPADD -f $ADDCONF -l $LDIFLIMITS 31 1.1 lukem RC=$? 32 1.1 lukem if test $RC != 0 ; then 33 1.1 lukem echo "slapadd failed ($RC)!" 34 1.1 lukem exit $RC 35 1.1 lukem fi 36 1.1 lukem 37 1.1 lukem echo "Running slapindex to index slapd database..." 38 1.1.1.9 christos . $CONFFILTER $BACKEND < $LIMITSCONF > $CONF1 39 1.1 lukem $SLAPINDEX -f $CONF1 40 1.1 lukem RC=$? 41 1.1 lukem if test $RC != 0 ; then 42 1.1 lukem echo "warning: slapindex failed ($RC)" 43 1.1 lukem echo " assuming no indexing support" 44 1.1 lukem fi 45 1.1 lukem 46 1.1 lukem echo "Starting slapd on TCP/IP port $PORT1..." 47 1.1.1.9 christos $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 48 1.1 lukem PID=$! 49 1.1 lukem if test $WAIT != 0 ; then 50 1.1 lukem echo PID $PID 51 1.1 lukem read foo 52 1.1 lukem fi 53 1.1 lukem KILLPIDS="$PID" 54 1.1 lukem 55 1.1 lukem sleep 1 56 1.1 lukem 57 1.1 lukem echo "Testing slapd searching..." 58 1.1 lukem for i in 0 1 2 3 4 5; do 59 1.1.1.9 christos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 60 1.1 lukem '(objectclass=*)' > /dev/null 2>&1 61 1.1 lukem RC=$? 62 1.1 lukem if test $RC = 0 ; then 63 1.1 lukem break 64 1.1 lukem fi 65 1.1 lukem echo "Waiting 5 seconds for slapd to start..." 66 1.1 lukem sleep 5 67 1.1 lukem done 68 1.1 lukem 69 1.1 lukem if test $RC != 0 ; then 70 1.1 lukem echo "ldapsearch failed ($RC)!" 71 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 72 1.1 lukem exit $RC 73 1.1 lukem fi 74 1.1 lukem 75 1.1 lukem cat /dev/null > $SEARCHOUT 76 1.1 lukem 77 1.1 lukem echo "" 78 1.1 lukem echo "Testing regular search limits" 79 1.1 lukem echo "" 80 1.1 lukem 81 1.1 lukem echo "Testing no limits requested for unlimited ID..." 82 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 83 1.1 lukem -D 'cn=Unlimited User,ou=People,dc=example,dc=com' \ 84 1.1 lukem '(objectClass=*)' >$SEARCHOUT 2>&1 85 1.1 lukem RC=$? 86 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 87 1.1 lukem case $RC in 88 1.1 lukem 0) 89 1.1 lukem if test x"$COUNT" != x ; then 90 1.1 lukem echo "...success (got $COUNT entries)" 91 1.1 lukem else 92 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 93 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 94 1.1 lukem exit 1 95 1.1 lukem fi 96 1.1 lukem ;; 97 1.1 lukem *) 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 ;; 102 1.1 lukem esac 103 1.1 lukem 104 1.1 lukem echo "Testing no limits requested for rootdn=$MANAGERDN..." 105 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 106 1.1 lukem -D "$MANAGERDN" \ 107 1.1 lukem '(objectClass=*)' >$SEARCHOUT 2>&1 108 1.1 lukem RC=$? 109 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 110 1.1 lukem case $RC in 111 1.1 lukem 0) 112 1.1 lukem if test x"$COUNT" != x ; then 113 1.1 lukem echo "...success (got $COUNT entries)" 114 1.1 lukem else 115 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 116 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 117 1.1 lukem exit 1 118 1.1 lukem fi 119 1.1 lukem ;; 120 1.1 lukem *) 121 1.1 lukem echo "ldapsearch failed ($RC)!" 122 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 123 1.1 lukem exit $RC 124 1.1 lukem ;; 125 1.1 lukem esac 126 1.1 lukem 127 1.1 lukem SIZELIMIT=4 128 1.1 lukem echo "Testing limit requested for rootdn=$MANAGERDN..." 129 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 130 1.1 lukem -D "$MANAGERDN" \ 131 1.1 lukem '(objectClass=*)' >$SEARCHOUT 2>&1 132 1.1 lukem RC=$? 133 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 134 1.1 lukem case $RC in 135 1.1 lukem 0) 136 1.1 lukem if test x"$COUNT" != x ; then 137 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 138 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 139 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 140 1.1 lukem exit 1 141 1.1 lukem fi 142 1.1 lukem echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)" 143 1.1 lukem else 144 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 145 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 146 1.1 lukem exit 1 147 1.1 lukem fi 148 1.1 lukem ;; 149 1.1 lukem 4) 150 1.1 lukem if test x"$COUNT" != x ; then 151 1.1 lukem if test "$COUNT" = "$SIZELIMIT" ; then 152 1.1 lukem echo "...bumped into requested size limit ($SIZELIMIT)" 153 1.1 lukem else 154 1.1 lukem echo "...error: got $COUNT entries with a requested sizelimit of $SIZELIMIT" 155 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 156 1.1 lukem exit $RC 157 1.1 lukem fi 158 1.1 lukem else 159 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 160 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 161 1.1 lukem exit $RC 162 1.1 lukem fi 163 1.1 lukem ;; 164 1.1 lukem *) 165 1.1 lukem echo "ldapsearch failed ($RC)!" 166 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 167 1.1 lukem exit $RC 168 1.1 lukem ;; 169 1.1 lukem esac 170 1.1 lukem 171 1.1 lukem SIZELIMIT=2 172 1.1 lukem echo "Testing size limit request ($SIZELIMIT) for unlimited ID..." 173 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 174 1.1 lukem -D 'cn=Unlimited User,ou=People,dc=example,dc=com' \ 175 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 176 1.1 lukem RC=$? 177 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 178 1.1 lukem case $RC in 179 1.1 lukem 0) 180 1.1 lukem if test x"$COUNT" != x ; then 181 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 182 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 183 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 184 1.1 lukem exit 1 185 1.1 lukem fi 186 1.1 lukem echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)" 187 1.1 lukem else 188 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 189 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 190 1.1 lukem exit 1 191 1.1 lukem fi 192 1.1 lukem ;; 193 1.1 lukem 4) 194 1.1 lukem if test x"$COUNT" != x ; then 195 1.1 lukem if test "$COUNT" = "$SIZELIMIT" ; then 196 1.1 lukem echo "...bumped into requested size limit ($SIZELIMIT)" 197 1.1 lukem else 198 1.1 lukem echo "...error: got $COUNT entries with a requested sizelimit of $SIZELIMIT" 199 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 200 1.1 lukem exit $RC 201 1.1 lukem fi 202 1.1 lukem else 203 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 204 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 205 1.1 lukem exit $RC 206 1.1 lukem fi 207 1.1 lukem ;; 208 1.1 lukem *) 209 1.1 lukem echo "ldapsearch failed ($RC)!" 210 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 211 1.1 lukem exit $RC 212 1.1 lukem ;; 213 1.1 lukem esac 214 1.1 lukem 215 1.1 lukem TIMELIMIT=10 216 1.1 lukem echo "Testing time limit request ($TIMELIMIT s) for unlimited ID..." 217 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -l $TIMELIMIT \ 218 1.1 lukem -D 'cn=Unlimited User,ou=People,dc=example,dc=com' \ 219 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 220 1.1 lukem RC=$? 221 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 222 1.1 lukem case $RC in 223 1.1 lukem 0) 224 1.1 lukem if test x"$COUNT" != x ; then 225 1.1 lukem echo "...didn't bump into the requested time limit ($TIMELIMIT s; got $COUNT entries)" 226 1.1 lukem else 227 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 228 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 229 1.1 lukem exit 1 230 1.1 lukem fi 231 1.1 lukem ;; 232 1.1 lukem 3) 233 1.1 lukem if test x"$COUNT" != x ; then 234 1.1 lukem COUNT=0 235 1.1 lukem fi 236 1.1 lukem echo "...bumped into requested time limit ($TIMELIMIT s; got $COUNT entries)" 237 1.1 lukem ;; 238 1.1 lukem *) 239 1.1 lukem echo "ldapsearch failed ($RC)!" 240 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 241 1.1 lukem exit $RC 242 1.1 lukem ;; 243 1.1 lukem esac 244 1.1 lukem 245 1.1 lukem echo "Testing no limits requested for soft limited ID..." 246 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 247 1.1 lukem -D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \ 248 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 249 1.1 lukem RC=$? 250 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 251 1.1 lukem case $RC in 252 1.1 lukem 0) 253 1.1 lukem if test x"$COUNT" != x ; then 254 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 255 1.1 lukem else 256 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 257 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 258 1.1 lukem exit 1 259 1.1 lukem fi 260 1.1 lukem ;; 261 1.1 lukem 4) 262 1.1 lukem if test x"$COUNT" != x ; then 263 1.1 lukem echo "...bumped into server-side size limit (got $COUNT entries)" 264 1.1 lukem else 265 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 266 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 267 1.1 lukem exit $RC 268 1.1 lukem fi 269 1.1 lukem ;; 270 1.1 lukem *) 271 1.1 lukem echo "ldapsearch failed ($RC)!" 272 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 273 1.1 lukem exit $RC 274 1.1 lukem ;; 275 1.1 lukem esac 276 1.1 lukem 277 1.1 lukem SIZELIMIT=2 278 1.1 lukem echo "Testing lower than soft limit request ($SIZELIMIT) for soft limited ID..." 279 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 280 1.1 lukem -D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \ 281 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 282 1.1 lukem RC=$? 283 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 284 1.1 lukem case $RC in 285 1.1 lukem 0) 286 1.1 lukem if test x"$COUNT" != x ; then 287 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 288 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 289 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 290 1.1 lukem exit 1 291 1.1 lukem fi 292 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 293 1.1 lukem else 294 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 295 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 296 1.1 lukem exit 1 297 1.1 lukem fi 298 1.1 lukem ;; 299 1.1 lukem 4) 300 1.1 lukem if test "x$COUNT" != "x" ; then 301 1.1 lukem if test "x$SIZELIMIT" = "x$COUNT" ; then 302 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 303 1.1 lukem else 304 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 305 1.1 lukem fi 306 1.1 lukem else 307 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 308 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 309 1.1 lukem exit $RC 310 1.1 lukem fi 311 1.1 lukem ;; 312 1.1 lukem *) 313 1.1 lukem echo "ldapsearch failed ($RC)!" 314 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 315 1.1 lukem exit $RC 316 1.1 lukem ;; 317 1.1 lukem esac 318 1.1 lukem 319 1.1 lukem SIZELIMIT=100 320 1.1 lukem echo "Testing higher than soft limit request ($SIZELIMIT) for soft limited ID..." 321 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 322 1.1 lukem -D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \ 323 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 324 1.1 lukem RC=$? 325 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 326 1.1 lukem case $RC in 327 1.1 lukem 0) 328 1.1 lukem if test x"$COUNT" != x ; then 329 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 330 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 331 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 332 1.1 lukem exit 1 333 1.1 lukem fi 334 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 335 1.1 lukem else 336 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 337 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 338 1.1 lukem exit 1 339 1.1 lukem fi 340 1.1 lukem ;; 341 1.1 lukem 4) 342 1.1 lukem if test "x$COUNT" != "x" ; then 343 1.1 lukem if test "x$SIZELIMIT" = "x$COUNT" ; then 344 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 345 1.1 lukem else 346 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 347 1.1 lukem fi 348 1.1 lukem else 349 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 350 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 351 1.1 lukem exit $RC 352 1.1 lukem fi 353 1.1 lukem ;; 354 1.1 lukem *) 355 1.1 lukem echo "ldapsearch failed ($RC)!" 356 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 357 1.1 lukem exit $RC 358 1.1 lukem ;; 359 1.1 lukem esac 360 1.1 lukem 361 1.1 lukem SIZELIMIT=2 362 1.1 lukem echo "Testing lower than hard limit request ($SIZELIMIT) for hard limited ID..." 363 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 364 1.1 lukem -D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \ 365 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 366 1.1 lukem RC=$? 367 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 368 1.1 lukem case $RC in 369 1.1 lukem 0) 370 1.1 lukem if test x"$COUNT" != x ; then 371 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 372 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 373 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 374 1.1 lukem exit 1 375 1.1 lukem fi 376 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 377 1.1 lukem else 378 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 379 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 380 1.1 lukem exit 1 381 1.1 lukem fi 382 1.1 lukem ;; 383 1.1 lukem 4) 384 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 385 1.1 lukem ;; 386 1.1 lukem *) 387 1.1 lukem echo "ldapsearch failed ($RC)!" 388 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 389 1.1 lukem exit $RC 390 1.1 lukem ;; 391 1.1 lukem esac 392 1.1 lukem 393 1.1 lukem SIZELIMIT=100 394 1.1 lukem echo "Testing higher than hard limit request ($SIZELIMIT) for hard limited ID..." 395 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 396 1.1 lukem -D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \ 397 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 398 1.1 lukem RC=$? 399 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 400 1.1 lukem case $RC in 401 1.1 lukem 0) 402 1.1 lukem if test x"$COUNT" != x ; then 403 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 404 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 405 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 406 1.1 lukem exit 1 407 1.1 lukem fi 408 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 409 1.1 lukem else 410 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 411 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 412 1.1 lukem exit 1 413 1.1 lukem fi 414 1.1 lukem ;; 415 1.1 lukem 4) 416 1.1 lukem if test x"$COUNT" != x ; then 417 1.1 lukem if test "$COUNT" = "$SIZELIMIT" ; then 418 1.1 lukem echo "...error: bumped into requested ($SIZELIMIT) size limit" 419 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 420 1.1 lukem exit $RC 421 1.1 lukem else 422 1.1 lukem echo "...got size limit $COUNT instead of requested $SIZELIMIT entries" 423 1.1 lukem fi 424 1.1 lukem else 425 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 426 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 427 1.1 lukem exit $RC 428 1.1 lukem fi 429 1.1 lukem ;; 430 1.1 lukem # 11) 431 1.1 lukem # echo "...bumped into server-side hard size administrative limit" 432 1.1 lukem # ;; 433 1.1 lukem *) 434 1.1 lukem echo "ldapsearch failed ($RC)!" 435 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 436 1.1 lukem exit $RC 437 1.1 lukem ;; 438 1.1 lukem esac 439 1.1 lukem 440 1.1 lukem SIZELIMIT=max 441 1.1 lukem echo "Testing max limit request ($SIZELIMIT) for hard limited ID..." 442 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 443 1.1 lukem -D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \ 444 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 445 1.1 lukem RC=$? 446 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 447 1.1 lukem case $RC in 448 1.1 lukem 0) 449 1.1 lukem if test x"$COUNT" != x ; then 450 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 451 1.1 lukem else 452 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 453 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 454 1.1 lukem exit 1 455 1.1 lukem fi 456 1.1 lukem ;; 457 1.1 lukem 4) 458 1.1 lukem if test x"$COUNT" != x ; then 459 1.1 lukem echo "...bumped into requested ($SIZELIMIT=$COUNT) size limit" 460 1.1 lukem else 461 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 462 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 463 1.1 lukem exit $RC 464 1.1 lukem fi 465 1.1 lukem ;; 466 1.1 lukem # 11) 467 1.1 lukem # echo "...bumped into server-side hard size administrative limit" 468 1.1 lukem # ;; 469 1.1 lukem *) 470 1.1 lukem echo "ldapsearch failed ($RC)!" 471 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 472 1.1 lukem exit $RC 473 1.1 lukem ;; 474 1.1 lukem esac 475 1.1 lukem 476 1.1 lukem echo "Testing lower than unchecked limit request for unchecked limited ID..." 477 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 478 1.1 lukem -D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \ 479 1.1 lukem '(uid=uncheckedlimited)' > $SEARCHOUT 2>&1 480 1.1 lukem RC=$? 481 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 482 1.1 lukem case $RC in 483 1.1 lukem 0) 484 1.1 lukem if test x"$COUNT" != x ; then 485 1.1 lukem echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)" 486 1.1 lukem else 487 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 488 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 489 1.1 lukem exit 1 490 1.1 lukem fi 491 1.1 lukem ;; 492 1.1 lukem 11) 493 1.1 lukem echo "...error: bumped into unchecked administrative limit" 494 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 495 1.1 lukem exit $RC 496 1.1 lukem ;; 497 1.1 lukem *) 498 1.1 lukem echo "ldapsearch failed ($RC)!" 499 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 500 1.1 lukem exit $RC 501 1.1 lukem ;; 502 1.1 lukem esac 503 1.1 lukem 504 1.1.1.4 tron if test $INDEXDB = indexdb ; then 505 1.1 lukem 506 1.1 lukem echo "Testing higher than unchecked limit requested for unchecked limited ID..." 507 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 508 1.1 lukem -D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \ 509 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 510 1.1 lukem RC=$? 511 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 512 1.1 lukem case $RC in 513 1.1 lukem 0) 514 1.1 lukem if test x"$COUNT" != x ; then 515 1.1 lukem echo "...error: didn't bump into server-side unchecked limit (got $COUNT entries)" 516 1.1 lukem else 517 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 518 1.1 lukem fi 519 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 520 1.1 lukem exit 1 521 1.1 lukem ;; 522 1.1 lukem 11) 523 1.1 lukem echo "...bumped into unchecked administrative limit" 524 1.1 lukem ;; 525 1.1 lukem *) 526 1.1 lukem echo "ldapsearch failed ($RC)!" 527 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 528 1.1 lukem exit $RC 529 1.1 lukem ;; 530 1.1 lukem esac 531 1.1 lukem 532 1.1 lukem echo "Testing no limits requested for unchecked limited group..." 533 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 534 1.1 lukem -D 'cn=Unchecked Limited User 2,ou=People,dc=example,dc=com' \ 535 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 536 1.1 lukem RC=$? 537 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 538 1.1 lukem case $RC in 539 1.1 lukem 0) 540 1.1 lukem if test x"$COUNT" != x ; then 541 1.1 lukem echo "...error: didn't bump into server-side unchecked limit (got $COUNT entries)" 542 1.1 lukem else 543 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 544 1.1 lukem fi 545 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 546 1.1 lukem exit 1 547 1.1 lukem ;; 548 1.1 lukem 11) 549 1.1 lukem echo "...bumped into unchecked administrative limit" 550 1.1 lukem ;; 551 1.1 lukem *) 552 1.1 lukem echo "ldapsearch failed ($RC)!" 553 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 554 1.1 lukem exit $RC 555 1.1 lukem ;; 556 1.1 lukem esac 557 1.1.1.4 tron else 558 1.1.1.4 tron echo "Skipping test for unchecked limit with $BACKEND backend." 559 1.1.1.4 tron fi 560 1.1 lukem 561 1.1 lukem echo "Testing no limits requested for limited regex..." 562 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 563 1.1 lukem -D 'cn=Foo User,ou=People,dc=example,dc=com' \ 564 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 565 1.1 lukem RC=$? 566 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 567 1.1 lukem case $RC in 568 1.1 lukem 0) 569 1.1 lukem if test x"$COUNT" != x ; then 570 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 571 1.1 lukem else 572 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 573 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 574 1.1 lukem exit 1 575 1.1 lukem fi 576 1.1 lukem ;; 577 1.1 lukem 4) 578 1.1 lukem if test "x$COUNT" != "x" ; then 579 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 580 1.1 lukem else 581 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 582 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 583 1.1 lukem exit $RC 584 1.1 lukem fi 585 1.1 lukem ;; 586 1.1 lukem *) 587 1.1 lukem echo "ldapsearch failed ($RC)!" 588 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 589 1.1 lukem exit $RC 590 1.1 lukem ;; 591 1.1 lukem esac 592 1.1 lukem 593 1.1 lukem echo "Testing no limits requested for limited onelevel..." 594 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 595 1.1 lukem -D 'cn=Bar User,ou=People,dc=example,dc=com' \ 596 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 597 1.1 lukem RC=$? 598 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 599 1.1 lukem case $RC in 600 1.1 lukem 0) 601 1.1 lukem if test x"$COUNT" != x ; then 602 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 603 1.1 lukem else 604 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 605 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 606 1.1 lukem exit 1 607 1.1 lukem fi 608 1.1 lukem ;; 609 1.1 lukem 4) 610 1.1 lukem if test "x$COUNT" != "x" ; then 611 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 612 1.1 lukem else 613 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 614 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 615 1.1 lukem exit $RC 616 1.1 lukem fi 617 1.1 lukem ;; 618 1.1 lukem *) 619 1.1 lukem echo "ldapsearch failed ($RC)!" 620 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 621 1.1 lukem exit $RC 622 1.1 lukem ;; 623 1.1 lukem esac 624 1.1 lukem 625 1.1 lukem echo "Testing no limit requested for limited children..." 626 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 627 1.1 lukem -D 'cn=Unchecked Limited Users,ou=Groups,dc=example,dc=com' \ 628 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 629 1.1 lukem RC=$? 630 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 631 1.1 lukem case $RC in 632 1.1 lukem 0) 633 1.1 lukem if test x"$COUNT" != x ; then 634 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 635 1.1 lukem else 636 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 637 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 638 1.1 lukem exit 1 639 1.1 lukem fi 640 1.1 lukem ;; 641 1.1 lukem 4) 642 1.1 lukem if test "x$COUNT" != "x" ; then 643 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 644 1.1 lukem else 645 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 646 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 647 1.1 lukem exit $RC 648 1.1 lukem fi 649 1.1 lukem ;; 650 1.1 lukem *) 651 1.1 lukem echo "ldapsearch failed ($RC)!" 652 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 653 1.1 lukem exit $RC 654 1.1 lukem ;; 655 1.1 lukem esac 656 1.1 lukem 657 1.1 lukem echo "Testing no limit requested for limited subtree..." 658 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 659 1.1 lukem -D 'cn=Unchecked Limited User 3,ou=Admin,dc=example,dc=com' \ 660 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 661 1.1 lukem RC=$? 662 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 663 1.1 lukem case $RC in 664 1.1 lukem 0) 665 1.1 lukem if test x"$COUNT" != x ; then 666 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 667 1.1 lukem else 668 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 669 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 670 1.1 lukem exit 1 671 1.1 lukem fi 672 1.1 lukem ;; 673 1.1 lukem 4) 674 1.1 lukem if test "x$COUNT" != "x" ; then 675 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 676 1.1 lukem else 677 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 678 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 679 1.1 lukem exit $RC 680 1.1 lukem fi 681 1.1 lukem ;; 682 1.1 lukem *) 683 1.1 lukem echo "ldapsearch failed ($RC)!" 684 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 685 1.1 lukem exit $RC 686 1.1 lukem ;; 687 1.1 lukem esac 688 1.1 lukem 689 1.1 lukem echo "Testing no limit requested for limited users..." 690 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 691 1.1 lukem -D 'cn=Special User,dc=example,dc=com' \ 692 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 693 1.1 lukem RC=$? 694 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 695 1.1 lukem case $RC in 696 1.1 lukem 0) 697 1.1 lukem if test x"$COUNT" != x ; then 698 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 699 1.1 lukem else 700 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 701 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 702 1.1 lukem exit 1 703 1.1 lukem fi 704 1.1 lukem ;; 705 1.1 lukem 4) 706 1.1 lukem if test "x$COUNT" != "x" ; then 707 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 708 1.1 lukem else 709 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 710 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 711 1.1 lukem exit $RC 712 1.1 lukem fi 713 1.1 lukem ;; 714 1.1 lukem *) 715 1.1 lukem echo "ldapsearch failed ($RC)!" 716 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 717 1.1 lukem exit $RC 718 1.1 lukem ;; 719 1.1 lukem esac 720 1.1 lukem 721 1.1 lukem echo "Testing no limit requested for limited anonymous..." 722 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 \ 723 1.1 lukem '(objectClass=*)' > $SEARCHOUT 2>&1 724 1.1 lukem RC=$? 725 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 726 1.1 lukem case $RC in 727 1.1 lukem 0) 728 1.1 lukem if test x"$COUNT" != x ; then 729 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 730 1.1 lukem else 731 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 732 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 733 1.1 lukem exit 1 734 1.1 lukem fi 735 1.1 lukem ;; 736 1.1 lukem 4) 737 1.1 lukem if test "x$COUNT" != "x" ; then 738 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 739 1.1 lukem else 740 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 741 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 742 1.1 lukem exit $RC 743 1.1 lukem fi 744 1.1 lukem ;; 745 1.1 lukem *) 746 1.1 lukem echo "ldapsearch failed ($RC)!" 747 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 748 1.1 lukem exit $RC 749 1.1 lukem ;; 750 1.1 lukem esac 751 1.1 lukem 752 1.1.1.4 tron if test $MAINDB != maindb ; then 753 1.1.1.9 christos # only mdb currently supports pagedResults control 754 1.1.1.10 christos test $KILLSERVERS != no && kill -HUP $KILLPIDS && wait 755 1.1 lukem 756 1.1 lukem echo ">>>>> Test succeeded" 757 1.1 lukem exit 0 758 1.1.1.4 tron fi 759 1.1 lukem 760 1.1 lukem if test x"$SLAPD_PAGE_SIZE" != x ; then 761 1.1 lukem PAGESIZE="$SLAPD_PAGE_SIZE" 762 1.1 lukem if test "$PAGESIZE" -le 0 ; then 763 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 764 1.1 lukem 765 1.1 lukem echo "" 766 1.1 lukem echo "Testing with pagedResults control disabled" 767 1.1 lukem echo "" 768 1.1 lukem echo ">>>>> Test succeeded" 769 1.1 lukem exit 0 770 1.1 lukem fi 771 1.1 lukem else 772 1.1 lukem PAGESIZE=5 773 1.1 lukem fi 774 1.1 lukem 775 1.1 lukem echo "" 776 1.1 lukem echo "Testing regular search limits with pagedResults control (page size $PAGESIZE)" 777 1.1 lukem echo "" 778 1.1 lukem 779 1.1 lukem echo "Testing no limits requested for unlimited ID..." 780 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 781 1.1 lukem -D 'cn=Unlimited User,ou=People,dc=example,dc=com' \ 782 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' >$SEARCHOUT 2>&1 783 1.1 lukem RC=$? 784 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 785 1.1 lukem case $RC in 786 1.1 lukem 0) 787 1.1 lukem if test x"$COUNT" != x ; then 788 1.1 lukem echo "...success (got $COUNT entries)" 789 1.1 lukem else 790 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 791 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 792 1.1 lukem exit 1 793 1.1 lukem fi 794 1.1 lukem ;; 795 1.1 lukem *) 796 1.1 lukem echo "ldapsearch failed ($RC)!" 797 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 798 1.1 lukem exit $RC 799 1.1 lukem ;; 800 1.1 lukem esac 801 1.1 lukem 802 1.1 lukem SIZELIMIT=2 803 1.1 lukem echo "Testing size limit request ($SIZELIMIT) for unlimited ID..." 804 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 805 1.1 lukem -D 'cn=Unlimited User,ou=People,dc=example,dc=com' \ 806 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 807 1.1 lukem RC=$? 808 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 809 1.1 lukem case $RC in 810 1.1 lukem 0) 811 1.1 lukem if test x"$COUNT" != x ; then 812 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 813 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 814 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 815 1.1 lukem exit 1 816 1.1 lukem fi 817 1.1 lukem echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)" 818 1.1 lukem else 819 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 820 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 821 1.1 lukem exit 1 822 1.1 lukem fi 823 1.1 lukem ;; 824 1.1 lukem 4) 825 1.1 lukem if test x"$COUNT" != x ; then 826 1.1 lukem if test $COUNT = $SIZELIMIT ; then 827 1.1 lukem echo "...bumped into requested size limit ($SIZELIMIT)" 828 1.1 lukem else 829 1.1 lukem echo "...error: got $COUNT entries while requesting $SIZELIMIT..." 830 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 831 1.1 lukem exit $RC 832 1.1 lukem fi 833 1.1 lukem else 834 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 835 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 836 1.1 lukem exit $RC 837 1.1 lukem fi 838 1.1 lukem ;; 839 1.1 lukem *) 840 1.1 lukem echo "ldapsearch failed ($RC)!" 841 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 842 1.1 lukem exit $RC 843 1.1 lukem ;; 844 1.1 lukem esac 845 1.1 lukem 846 1.1 lukem TIMELIMIT=10 847 1.1 lukem echo "Testing time limit request ($TIMELIMIT s) for unlimited ID..." 848 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -l $TIMELIMIT \ 849 1.1 lukem -D 'cn=Unlimited User,ou=People,dc=example,dc=com' \ 850 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 851 1.1 lukem RC=$? 852 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 853 1.1 lukem case $RC in 854 1.1 lukem 0) 855 1.1 lukem if test x"$COUNT" != x ; then 856 1.1 lukem echo "...didn't bump into the requested time limit ($TIMELIMIT s; got $COUNT entries)" 857 1.1 lukem else 858 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 859 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 860 1.1 lukem exit 1 861 1.1 lukem fi 862 1.1 lukem ;; 863 1.1 lukem 3) 864 1.1 lukem if test x"$COUNT" = x ; then 865 1.1 lukem COUNT=0 866 1.1 lukem fi 867 1.1 lukem echo "...bumped into requested time limit ($TIMELIMIT s; got $COUNT entries)" 868 1.1 lukem ;; 869 1.1 lukem *) 870 1.1 lukem echo "ldapsearch failed ($RC)!" 871 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 872 1.1 lukem exit $RC 873 1.1 lukem ;; 874 1.1 lukem esac 875 1.1 lukem 876 1.1 lukem echo "Testing no limits requested for soft limited ID..." 877 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 878 1.1 lukem -D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \ 879 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 880 1.1 lukem RC=$? 881 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 882 1.1 lukem case $RC in 883 1.1 lukem 0) 884 1.1 lukem if test x"$COUNT" != x ; then 885 1.1 lukem echo "...didn't bump into server-side size limit (got $COUNT entries)" 886 1.1 lukem else 887 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 888 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 889 1.1 lukem exit 1 890 1.1 lukem fi 891 1.1 lukem ;; 892 1.1 lukem 4) 893 1.1 lukem if test x"$COUNT" != x ; then 894 1.1 lukem echo "...bumped into server-side size limit (got $COUNT entries)" 895 1.1 lukem else 896 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 897 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 898 1.1 lukem exit $RC 899 1.1 lukem fi 900 1.1 lukem ;; 901 1.1 lukem *) 902 1.1 lukem echo "ldapsearch failed ($RC)!" 903 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 904 1.1 lukem exit $RC 905 1.1 lukem ;; 906 1.1 lukem esac 907 1.1 lukem 908 1.1 lukem SIZELIMIT=2 909 1.1 lukem echo "Testing lower than soft limit request ($SIZELIMIT) for soft limited ID..." 910 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 911 1.1 lukem -D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \ 912 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 913 1.1 lukem RC=$? 914 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 915 1.1 lukem case $RC in 916 1.1 lukem 0) 917 1.1 lukem if test x"$COUNT" != x ; then 918 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 919 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 920 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 921 1.1 lukem exit 1 922 1.1 lukem fi 923 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 924 1.1 lukem else 925 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 926 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 927 1.1 lukem exit 1 928 1.1 lukem fi 929 1.1 lukem ;; 930 1.1 lukem 4) 931 1.1 lukem if test "x$COUNT" != "x" ; then 932 1.1 lukem if test "x$SIZELIMIT" = "x$COUNT" ; then 933 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 934 1.1 lukem else 935 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 936 1.1 lukem fi 937 1.1 lukem else 938 1.1 lukem echo "...bumped into either requested ($SIZELIMIT) or server-side size limit" 939 1.1 lukem fi 940 1.1 lukem ;; 941 1.1 lukem *) 942 1.1 lukem echo "ldapsearch failed ($RC)!" 943 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 944 1.1 lukem exit $RC 945 1.1 lukem ;; 946 1.1 lukem esac 947 1.1 lukem 948 1.1 lukem SIZELIMIT=100 949 1.1 lukem echo "Testing higher than soft limit request ($SIZELIMIT) for soft limited ID..." 950 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 951 1.1 lukem -D 'cn=Soft Limited User,ou=People,dc=example,dc=com' \ 952 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 953 1.1 lukem RC=$? 954 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 955 1.1 lukem case $RC in 956 1.1 lukem 0) 957 1.1 lukem if test x"$COUNT" != x ; then 958 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 959 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 960 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 961 1.1 lukem exit 1 962 1.1 lukem fi 963 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 964 1.1 lukem else 965 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 966 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 967 1.1 lukem exit 1 968 1.1 lukem fi 969 1.1 lukem ;; 970 1.1 lukem 4) 971 1.1 lukem if test "x$COUNT" != "x" ; then 972 1.1 lukem if test "x$SIZELIMIT" = "x$COUNT" ; then 973 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 974 1.1 lukem else 975 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 976 1.1 lukem fi 977 1.1 lukem else 978 1.1 lukem echo "...bumped into either requested ($SIZELIMIT) or server-side size limit" 979 1.1 lukem fi 980 1.1 lukem ;; 981 1.1 lukem *) 982 1.1 lukem echo "ldapsearch failed ($RC)!" 983 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 984 1.1 lukem exit $RC 985 1.1 lukem ;; 986 1.1 lukem esac 987 1.1 lukem 988 1.1 lukem SIZELIMIT=2 989 1.1 lukem echo "Testing lower than hard limit request ($SIZELIMIT) for hard limited ID..." 990 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 991 1.1 lukem -D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \ 992 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 993 1.1 lukem RC=$? 994 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 995 1.1 lukem case $RC in 996 1.1 lukem 0) 997 1.1 lukem if test x"$COUNT" != x ; then 998 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 999 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 1000 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1001 1.1 lukem exit 1 1002 1.1 lukem fi 1003 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 1004 1.1 lukem else 1005 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 1006 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1007 1.1 lukem exit 1 1008 1.1 lukem fi 1009 1.1 lukem ;; 1010 1.1 lukem 4) 1011 1.1 lukem if test x"$COUNT" != x ; then 1012 1.1 lukem if test "$COUNT" = "$SIZELIMIT" ; then 1013 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 1014 1.1 lukem else 1015 1.1 lukem echo "...error: got size limit $SIZELIMIT but $COUNT entries" 1016 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1017 1.1 lukem exit $RC 1018 1.1 lukem fi 1019 1.1 lukem else 1020 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 1021 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1022 1.1 lukem exit $RC 1023 1.1 lukem fi 1024 1.1 lukem ;; 1025 1.1 lukem *) 1026 1.1 lukem echo "ldapsearch failed ($RC)!" 1027 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1028 1.1 lukem exit $RC 1029 1.1 lukem ;; 1030 1.1 lukem esac 1031 1.1 lukem 1032 1.1 lukem SIZELIMIT=100 1033 1.1 lukem echo "Testing higher than hard limit request ($SIZELIMIT) for hard limited ID..." 1034 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 1035 1.1 lukem -D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \ 1036 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1037 1.1 lukem RC=$? 1038 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1039 1.1 lukem case $RC in 1040 1.1 lukem 0) 1041 1.1 lukem if test x"$COUNT" != x ; then 1042 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 1043 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 1044 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1045 1.1 lukem exit 1 1046 1.1 lukem fi 1047 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 1048 1.1 lukem else 1049 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 1050 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1051 1.1 lukem exit 1 1052 1.1 lukem fi 1053 1.1 lukem ;; 1054 1.1 lukem 4) 1055 1.1 lukem if test x"$COUNT" != x ; then 1056 1.1 lukem if test "$COUNT" = "$SIZELIMIT" ; then 1057 1.1 lukem echo "...error: bumped into requested ($SIZELIMIT) size limit" 1058 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1059 1.1 lukem exit $RC 1060 1.1 lukem else 1061 1.1 lukem echo "...got size limit $COUNT instead of requested $SIZELIMIT entries" 1062 1.1 lukem fi 1063 1.1 lukem else 1064 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 1065 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1066 1.1 lukem exit $RC 1067 1.1 lukem fi 1068 1.1 lukem ;; 1069 1.1 lukem # 11) 1070 1.1 lukem # echo "...bumped into hard size administrative limit" 1071 1.1 lukem # ;; 1072 1.1 lukem *) 1073 1.1 lukem echo "ldapsearch failed ($RC)!" 1074 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1075 1.1 lukem exit $RC 1076 1.1 lukem ;; 1077 1.1 lukem esac 1078 1.1 lukem 1079 1.1 lukem SIZELIMIT=max 1080 1.1 lukem echo "Testing max limit request ($SIZELIMIT) for hard limited ID..." 1081 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 1082 1.1 lukem -D 'cn=Hard Limited User,ou=People,dc=example,dc=com' \ 1083 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1084 1.1 lukem RC=$? 1085 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1086 1.1 lukem case $RC in 1087 1.1 lukem 0) 1088 1.1 lukem if test x"$COUNT" != x ; then 1089 1.1 lukem echo "...didn't bump into either requested ($SIZELIMIT) or server-side size limit (got $COUNT entries)" 1090 1.1 lukem else 1091 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 1092 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1093 1.1 lukem exit 1 1094 1.1 lukem fi 1095 1.1 lukem ;; 1096 1.1 lukem 4) 1097 1.1 lukem if test x"$COUNT" != x ; then 1098 1.1 lukem echo "...bumped into requested ($SIZELIMIT=$COUNT) size limit" 1099 1.1 lukem else 1100 1.1 lukem echo "...error: bumped into size limit but got no entries!" 1101 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1102 1.1 lukem exit $RC 1103 1.1 lukem fi 1104 1.1 lukem ;; 1105 1.1 lukem # 11) 1106 1.1 lukem # echo "...bumped into hard size administrative limit" 1107 1.1 lukem # ;; 1108 1.1 lukem *) 1109 1.1 lukem echo "ldapsearch failed ($RC)!" 1110 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1111 1.1 lukem exit $RC 1112 1.1 lukem ;; 1113 1.1 lukem esac 1114 1.1 lukem 1115 1.1 lukem echo "Testing lower than unchecked limit request for unchecked limited ID..." 1116 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1117 1.1 lukem -D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \ 1118 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(uid=uncheckedlimited)' > $SEARCHOUT 2>&1 1119 1.1 lukem RC=$? 1120 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1121 1.1 lukem case $RC in 1122 1.1 lukem 0) 1123 1.1 lukem if test x"$COUNT" != x ; then 1124 1.1 lukem echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)" 1125 1.1 lukem else 1126 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 1127 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1128 1.1 lukem exit 1 1129 1.1 lukem fi 1130 1.1 lukem ;; 1131 1.1 lukem # 11) 1132 1.1 lukem # echo "...bumped into unchecked administrative limit" 1133 1.1 lukem # ;; 1134 1.1 lukem *) 1135 1.1 lukem echo "ldapsearch failed ($RC)!" 1136 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1137 1.1 lukem exit $RC 1138 1.1 lukem ;; 1139 1.1 lukem esac 1140 1.1 lukem 1141 1.1 lukem echo "Testing higher than unchecked limit requested for unchecked limited ID..." 1142 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1143 1.1 lukem -D 'cn=Unchecked Limited User,ou=People,dc=example,dc=com' \ 1144 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1145 1.1 lukem RC=$? 1146 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1147 1.1 lukem case $RC in 1148 1.1 lukem 0) 1149 1.1 lukem if test x"$COUNT" != x ; then 1150 1.1 lukem echo "...error: didn't bump into server-side unchecked limit (got $COUNT entries)" 1151 1.1 lukem else 1152 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 1153 1.1 lukem fi 1154 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1155 1.1 lukem exit 1 1156 1.1 lukem ;; 1157 1.1 lukem 11) 1158 1.1 lukem echo "...bumped into unchecked administrative limit" 1159 1.1 lukem ;; 1160 1.1 lukem *) 1161 1.1 lukem echo "ldapsearch failed ($RC)!" 1162 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1163 1.1 lukem exit $RC 1164 1.1 lukem ;; 1165 1.1 lukem esac 1166 1.1 lukem 1167 1.1 lukem echo "" 1168 1.1 lukem echo "Testing specific search limits with pagedResults control" 1169 1.1 lukem echo "" 1170 1.1 lukem 1171 1.1 lukem echo "Testing no limit requested for unlimited page size ID..." 1172 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1173 1.1 lukem -D 'cn=Unlimited User,ou=Paged Results Users,dc=example,dc=com' \ 1174 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1175 1.1 lukem RC=$? 1176 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1177 1.1 lukem case $RC in 1178 1.1 lukem 0) 1179 1.1 lukem if test x"$COUNT" != x ; then 1180 1.1 lukem echo "...success; didn't bump into server-side size limit (got $COUNT entries)" 1181 1.1 lukem else 1182 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 1183 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1184 1.1 lukem exit 1 1185 1.1 lukem fi 1186 1.1 lukem ;; 1187 1.1 lukem 4) 1188 1.1 lukem if test x"$COUNT" != x ; then 1189 1.1 lukem echo "...bumped into server-side size limit (got $COUNT entries)" 1190 1.1 lukem else 1191 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 1192 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1193 1.1 lukem exit $RC 1194 1.1 lukem fi 1195 1.1 lukem ;; 1196 1.1 lukem *) 1197 1.1 lukem echo "ldapsearch failed ($RC)!" 1198 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1199 1.1 lukem exit $RC 1200 1.1 lukem ;; 1201 1.1 lukem esac 1202 1.1 lukem 1203 1.1 lukem echo "Testing no limit requested for limited page size ID..." 1204 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1205 1.1 lukem -D 'cn=Page Size Limited User,ou=Paged Results Users,dc=example,dc=com' \ 1206 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1207 1.1 lukem RC=$? 1208 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1209 1.1 lukem case $RC in 1210 1.1 lukem 0) 1211 1.1 lukem echo "...success; didn't bump into server-side page size limit (got $COUNT entries)" 1212 1.1 lukem ;; 1213 1.1 lukem 4) 1214 1.1 lukem echo "...bumped into page size limit ($COUNT)" 1215 1.1 lukem ;; 1216 1.1 lukem 11) 1217 1.1 lukem echo "...bumped into page size administrative limit" 1218 1.1 lukem ;; 1219 1.1 lukem *) 1220 1.1 lukem echo "ldapsearch failed ($RC)!" 1221 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1222 1.1 lukem exit $RC 1223 1.1 lukem ;; 1224 1.1 lukem esac 1225 1.1 lukem 1226 1.1 lukem echo "Testing no limit requested for pagedResults disabled ID..." 1227 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1228 1.1 lukem -D 'cn=Paged Results Disabled User,ou=Paged Results Users,dc=example,dc=com' \ 1229 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1230 1.1 lukem RC=$? 1231 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1232 1.1 lukem case $RC in 1233 1.1 lukem 0) 1234 1.1 lukem echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)" 1235 1.1 lukem ;; 1236 1.1 lukem 4) 1237 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 1238 1.1 lukem ;; 1239 1.1 lukem 11) 1240 1.1 lukem echo "...bumped into pagedResults disabled administrative limit" 1241 1.1 lukem ;; 1242 1.1 lukem *) 1243 1.1 lukem echo "ldapsearch failed ($RC)!" 1244 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1245 1.1 lukem exit $RC 1246 1.1 lukem ;; 1247 1.1 lukem esac 1248 1.1 lukem 1249 1.1 lukem echo "Testing no limit requested for pagedResults total count limited ID..." 1250 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1251 1.1 lukem -D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \ 1252 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1253 1.1 lukem RC=$? 1254 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1255 1.1 lukem case $RC in 1256 1.1 lukem 0) 1257 1.1 lukem echo "...success; didn't bump into server-side unchecked limit (got $COUNT entries)" 1258 1.1 lukem ;; 1259 1.1 lukem 4) 1260 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 1261 1.1 lukem ;; 1262 1.1 lukem 11) 1263 1.1 lukem echo "...bumped into pagedResults total count administrative limit" 1264 1.1 lukem ;; 1265 1.1 lukem *) 1266 1.1 lukem echo "ldapsearch failed ($RC)!" 1267 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1268 1.1 lukem exit $RC 1269 1.1 lukem ;; 1270 1.1 lukem esac 1271 1.1 lukem 1272 1.1 lukem SIZELIMIT=8 1273 1.1 lukem echo "Testing higher than hard but lower then total count limit requested for pagedResults total count limited ID..." 1274 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1275 1.1 lukem -D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \ 1276 1.1 lukem -z $SIZELIMIT -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1277 1.1 lukem RC=$? 1278 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1279 1.1 lukem case $RC in 1280 1.1 lukem 0) 1281 1.1 lukem echo "...success; didn't bump into either requested ($SIZELIMIT) or server-side unchecked limit (got $COUNT entries)" 1282 1.1 lukem ;; 1283 1.1 lukem 4) 1284 1.1 lukem if test "x$COUNT" != "x" ; then 1285 1.1 lukem if test "x$SIZELIMIT" = "x$COUNT" ; then 1286 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 1287 1.1 lukem else 1288 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 1289 1.1 lukem fi 1290 1.1 lukem else 1291 1.1 lukem echo "...bumped into either requested ($SIZELIMIT) or server-side size limit" 1292 1.1 lukem fi 1293 1.1 lukem ;; 1294 1.1 lukem 11) 1295 1.1 lukem echo "...bumped into either hard size or pagedResults total count administrative limit" 1296 1.1 lukem ;; 1297 1.1 lukem *) 1298 1.1 lukem echo "ldapsearch failed ($RC)!" 1299 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1300 1.1 lukem exit $RC 1301 1.1 lukem ;; 1302 1.1 lukem esac 1303 1.1 lukem 1304 1.1 lukem SIZELIMIT=15 1305 1.1 lukem echo "Testing higher than total count limit requested for pagedResults total count limited ID..." 1306 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1307 1.1 lukem -D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \ 1308 1.1 lukem -z $SIZELIMIT -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1309 1.1 lukem RC=$? 1310 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1311 1.1 lukem case $RC in 1312 1.1 lukem 0) 1313 1.1 lukem echo "...success; didn't bump into either requested ($SIZELIMIT) or server-side unchecked limit (got $COUNT entries)" 1314 1.1 lukem ;; 1315 1.1 lukem 4) 1316 1.1 lukem if test "x$COUNT" != "x" ; then 1317 1.1 lukem if test "x$SIZELIMIT" = "x$COUNT" ; then 1318 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 1319 1.1 lukem else 1320 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 1321 1.1 lukem fi 1322 1.1 lukem else 1323 1.1 lukem echo "...bumped into either requested ($SIZELIMIT) or server-side size limit" 1324 1.1 lukem fi 1325 1.1 lukem ;; 1326 1.1 lukem 11) 1327 1.1 lukem echo "...bumped into pagedResults total count administrative limit" 1328 1.1 lukem ;; 1329 1.1 lukem *) 1330 1.1 lukem echo "ldapsearch failed ($RC)!" 1331 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1332 1.1 lukem exit $RC 1333 1.1 lukem ;; 1334 1.1 lukem esac 1335 1.1 lukem 1336 1.1 lukem SIZELIMIT=max 1337 1.1 lukem echo "Testing max limit requested for pagedResults total count limited ID..." 1338 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret \ 1339 1.1 lukem -D 'cn=Paged Results Limited User,ou=Paged Results Users,dc=example,dc=com' \ 1340 1.1 lukem -z $SIZELIMIT -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1341 1.1 lukem RC=$? 1342 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1343 1.1 lukem case $RC in 1344 1.1 lukem 0) 1345 1.1 lukem echo "...success; didn't bump into either requested ($SIZELIMIT) or server-side unchecked limit (got $COUNT entries)" 1346 1.1 lukem ;; 1347 1.1 lukem 4) 1348 1.1 lukem if test "x$COUNT" != "x" ; then 1349 1.1 lukem if test "x$SIZELIMIT" = "x$COUNT" ; then 1350 1.1 lukem echo "...bumped into requested ($SIZELIMIT) size limit" 1351 1.1 lukem else 1352 1.1 lukem echo "...bumped into server-side size limit ($COUNT)" 1353 1.1 lukem fi 1354 1.1 lukem else 1355 1.1 lukem echo "...bumped into either requested ($SIZELIMIT) or server-side size limit" 1356 1.1 lukem fi 1357 1.1 lukem ;; 1358 1.1 lukem 11) 1359 1.1 lukem echo "...bumped into pagedResults total count administrative limit" 1360 1.1 lukem ;; 1361 1.1 lukem *) 1362 1.1 lukem echo "ldapsearch failed ($RC)!" 1363 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1364 1.1 lukem exit $RC 1365 1.1 lukem ;; 1366 1.1 lukem esac 1367 1.1 lukem 1368 1.1 lukem # ITS#4479 1369 1.1 lukem PAGESIZE=1 1370 1.1 lukem SIZELIMIT=2 1371 1.1 lukem echo "Testing size limit request ($SIZELIMIT) for unlimited ID and pagesize=$PAGESIZE..." 1372 1.1.1.9 christos $LDAPRSEARCH -S "" -b "$BASEDN" -H $URI1 -w secret -z $SIZELIMIT \ 1373 1.1 lukem -D 'cn=Unlimited User,ou=People,dc=example,dc=com' \ 1374 1.1 lukem -E '!pr='$PAGESIZE'/noprompt' '(objectClass=*)' > $SEARCHOUT 2>&1 1375 1.1 lukem RC=$? 1376 1.1 lukem COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHOUT` 1377 1.1 lukem case $RC in 1378 1.1 lukem 0) 1379 1.1 lukem if test x"$COUNT" != x ; then 1380 1.1 lukem if test "$COUNT" -gt "$SIZELIMIT" ; then 1381 1.1 lukem echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" 1382 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1383 1.1 lukem exit 1 1384 1.1 lukem fi 1385 1.1 lukem echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)" 1386 1.1 lukem else 1387 1.1 lukem echo "...error: did not expect ldapsearch success ($RC)!" 1388 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1389 1.1 lukem exit 1 1390 1.1 lukem fi 1391 1.1 lukem ;; 1392 1.1 lukem 4) 1393 1.1 lukem if test x"$COUNT" != x ; then 1394 1.1 lukem if test $COUNT = $SIZELIMIT ; then 1395 1.1 lukem echo "...bumped into requested size limit ($SIZELIMIT)" 1396 1.1 lukem else 1397 1.1 lukem echo "...error: got $COUNT entries while requesting $SIZELIMIT..." 1398 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1399 1.1 lukem exit $RC 1400 1.1 lukem fi 1401 1.1 lukem else 1402 1.1 lukem echo "...error: bumped into server-side size limit, but got no entries!" 1403 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1404 1.1 lukem exit $RC 1405 1.1 lukem fi 1406 1.1 lukem ;; 1407 1.1 lukem *) 1408 1.1 lukem echo "ldapsearch failed ($RC)!" 1409 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1410 1.1 lukem exit $RC 1411 1.1 lukem ;; 1412 1.1 lukem esac 1413 1.1 lukem 1414 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1415 1.1 lukem 1416 1.1 lukem echo ">>>>> Test succeeded" 1417 1.1 lukem 1418 1.1 lukem test $KILLSERVERS != no && wait 1419 1.1 lukem 1420 1.1 lukem exit 0 1421