xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/sql-test000-read (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
162de962bdSlukemecho "running defines.sh"
172de962bdSlukem. $SRCDIR/scripts/defines.sh
182de962bdSlukem
192de962bdSlukemif test $BACKSQL = "sqlno" ; then
202de962bdSlukem	echo "SQL backend not available, test skipped"
212de962bdSlukem	exit 0
222de962bdSlukemfi
232de962bdSlukem
242de962bdSlukemif test $RDBMS = "rdbmsno" ; then
252de962bdSlukem	echo "SQL test not requested, test skipped"
262de962bdSlukem	exit 0
272de962bdSlukemfi
282de962bdSlukem
292de962bdSlukemmkdir -p $TESTDIR
302de962bdSlukem
312de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
32*e670fd5cSchristos. $CONFFILTER $BACKEND < $SQLCONF > $CONF1
33*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
342de962bdSlukemPID=$!
352de962bdSlukemif test $WAIT != 0 ; then
362de962bdSlukem    echo PID $PID
372de962bdSlukem    read foo
382de962bdSlukemfi
392de962bdSlukemKILLPIDS="$PID"
402de962bdSlukem
412de962bdSlukemecho "Testing SQL backend read operations..."
422de962bdSlukemfor i in 0 1 2 3 4 5; do
43*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
442de962bdSlukem		'objectclass=*' > /dev/null 2>&1
452de962bdSlukem	RC=$?
462de962bdSlukem	if test $RC = 0 ; then
472de962bdSlukem		break
482de962bdSlukem	fi
492de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
502de962bdSlukem	sleep 5
512de962bdSlukemdone
522de962bdSlukem
532de962bdSlukemif test $RC != 0 ; then
542de962bdSlukem	echo "ldapsearch failed ($RC)!"
552de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
562de962bdSlukem	exit $RC
572de962bdSlukemfi
582de962bdSlukem
592de962bdSlukemBASEDN="dc=example,dc=com"
602de962bdSlukemBINDDN="cn=Mitya Kovalev,${BASEDN}"
612de962bdSlukemBINDPW="mit"
622de962bdSlukemecho -n "Testing correct bind... "
63*e670fd5cSchristos$LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $BINDPW
642de962bdSlukemRC=$?
652de962bdSlukemif test $RC != 0 ; then
662de962bdSlukem	echo "ldapwhoami failed ($RC)!"
672de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
682de962bdSlukem	exit $RC
692de962bdSlukemfi
702de962bdSlukem
712de962bdSlukemecho -n "Testing incorrect bind (should fail)... "
72*e670fd5cSchristos$LDAPWHOAMI -H $URI1 -D "$BINDDN" -w "XXX"
732de962bdSlukemRC=$?
742de962bdSlukemif test $RC = 0 ; then
752de962bdSlukem	echo "ldapwhoami should have failed ($RC)!"
762de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
772de962bdSlukem	exit 1
782de962bdSlukemfi
792de962bdSlukem
802de962bdSlukemecho "Testing baseobject search..."
812de962bdSlukemecho "# Testing baseobject search..." >> $SEARCHOUT
82*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -s base -S "" \
832de962bdSlukem	>> $SEARCHOUT 2>&1
842de962bdSlukem
852de962bdSlukemRC=$?
862de962bdSlukemif test $RC != 0 ; then
872de962bdSlukem	echo "ldapsearch failed ($RC)!"
882de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
892de962bdSlukem	exit $RC
902de962bdSlukemfi
912de962bdSlukem
922de962bdSlukemecho "Testing onelevel search..."
932de962bdSlukemecho "# Testing onelevel search..." >> $SEARCHOUT
94*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -s one -S "" \
952de962bdSlukem	>> $SEARCHOUT 2>&1
962de962bdSlukem
972de962bdSlukemRC=$?
982de962bdSlukemif test $RC != 0 ; then
992de962bdSlukem	echo "ldapsearch failed ($RC)!"
1002de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1012de962bdSlukem	exit $RC
1022de962bdSlukemfi
1032de962bdSlukem
1042de962bdSlukemecho "Testing subtree search..."
1052de962bdSlukemecho "# Testing subtree search..." >> $SEARCHOUT
106*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
1072de962bdSlukem	>> $SEARCHOUT 2>&1
1082de962bdSlukem
1092de962bdSlukemRC=$?
1102de962bdSlukemif test $RC != 0 ; then
1112de962bdSlukem	echo "ldapsearch failed ($RC)!"
1122de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1132de962bdSlukem	exit $RC
1142de962bdSlukemfi
1152de962bdSlukem
1162de962bdSlukemecho "Testing subtree search with manageDSAit..."
1172de962bdSlukemecho "# Testing subtree search with manageDSAit..." >> $SEARCHOUT
118*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -M -S "" '*' ref \
1192de962bdSlukem	>> $SEARCHOUT 2>&1
1202de962bdSlukem
1212de962bdSlukemRC=$?
1222de962bdSlukemif test $RC != 0 ; then
1232de962bdSlukem	echo "ldapsearch failed ($RC)!"
1242de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1252de962bdSlukem	exit $RC
1262de962bdSlukemfi
1272de962bdSlukem
1282de962bdSlukemecho "Testing invalid filter..."
1292de962bdSlukemecho "# Testing invalid filter..." >> $SEARCHOUT
130*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" "(foo=)" \
1312de962bdSlukem	>> $SEARCHOUT 2>&1
1322de962bdSlukem
1332de962bdSlukemRC=$?
1342de962bdSlukemif test $RC != 0 ; then
1352de962bdSlukem	echo "ldapsearch failed ($RC)!"
1362de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1372de962bdSlukem	exit $RC
1382de962bdSlukemfi
1392de962bdSlukem
1402de962bdSlukemecho "Testing exact search..."
1412de962bdSlukemecho "# Testing exact search..." >> $SEARCHOUT
142*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" "(sn=Kovalev)" \
1432de962bdSlukem	>> $SEARCHOUT 2>&1
1442de962bdSlukem
1452de962bdSlukemRC=$?
1462de962bdSlukemif test $RC != 0 ; then
1472de962bdSlukem	echo "ldapsearch failed ($RC)!"
1482de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1492de962bdSlukem	exit $RC
1502de962bdSlukemfi
1512de962bdSlukem
1522de962bdSlukemecho "Testing substrings initial search..."
1532de962bdSlukemecho "# Testing substrings initial search..." >> $SEARCHOUT
154*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" "(cn=m*)" \
1552de962bdSlukem	>> $SEARCHOUT 2>&1
1562de962bdSlukem
1572de962bdSlukemRC=$?
1582de962bdSlukemif test $RC != 0 ; then
1592de962bdSlukem	echo "ldapsearch failed ($RC)!"
1602de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1612de962bdSlukem	exit $RC
1622de962bdSlukemfi
1632de962bdSlukem
1642de962bdSlukemecho "Testing substrings any search..."
1652de962bdSlukemecho "# Testing substrings any search..." >> $SEARCHOUT
166*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" "(cn=*m*)" \
1672de962bdSlukem	>> $SEARCHOUT 2>&1
1682de962bdSlukem
1692de962bdSlukemRC=$?
1702de962bdSlukemif test $RC != 0 ; then
1712de962bdSlukem	echo "ldapsearch failed ($RC)!"
1722de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1732de962bdSlukem	exit $RC
1742de962bdSlukemfi
1752de962bdSlukem
1762de962bdSlukemecho "Testing substrings final search..."
1772de962bdSlukemecho "# Testing substrings final search..." >> $SEARCHOUT
178*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" "(cn=*v)" \
1792de962bdSlukem	>> $SEARCHOUT 2>&1
1802de962bdSlukem
1812de962bdSlukemRC=$?
1822de962bdSlukemif test $RC != 0 ; then
1832de962bdSlukem	echo "ldapsearch failed ($RC)!"
1842de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1852de962bdSlukem	exit $RC
1862de962bdSlukemfi
1872de962bdSlukem
1882de962bdSlukemecho "Testing approx search..."
1892de962bdSlukemecho "# Testing approx search..." >> $SEARCHOUT
190*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" "(sn~=kovalev)" \
1912de962bdSlukem	>> $SEARCHOUT 2>&1
1922de962bdSlukem
1932de962bdSlukemRC=$?
1942de962bdSlukemif test $RC != 0 ; then
1952de962bdSlukem	echo "ldapsearch failed ($RC)!"
1962de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1972de962bdSlukem	exit $RC
1982de962bdSlukemfi
1992de962bdSlukem
2002de962bdSlukemecho "Testing extensible filter search..."
2012de962bdSlukemecho "# Testing extensible filter search..." >> $SEARCHOUT
202*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2032de962bdSlukem	 "(sn:caseExactMatch:=Kovalev)" >> $SEARCHOUT 2>&1
2042de962bdSlukem
2052de962bdSlukemRC=$?
2062de962bdSlukemif test $RC != 0 ; then
2072de962bdSlukem	echo "ldapsearch failed ($RC)!"
2082de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2092de962bdSlukem	exit $RC
2102de962bdSlukemfi
2112de962bdSlukem
2122de962bdSlukemecho "Testing search for telephoneNumber..."
2132de962bdSlukemecho "# Testing search for telephoneNumber..." >> $SEARCHOUT
214*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2152de962bdSlukem	 "(telephoneNumber=3322334)" >> $SEARCHOUT 2>&1
2162de962bdSlukem
2172de962bdSlukemRC=$?
2182de962bdSlukemif test $RC != 0 ; then
2192de962bdSlukem	echo "ldapsearch failed ($RC)!"
2202de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2212de962bdSlukem	exit $RC
2222de962bdSlukemfi
2232de962bdSlukem
2242de962bdSlukemecho "Testing AND search..."
2252de962bdSlukemecho "# Testing AND search..." >> $SEARCHOUT
226*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2272de962bdSlukem	 "(&(sn=kovalev)(givenName=mitya))" >> $SEARCHOUT 2>&1
2282de962bdSlukem
2292de962bdSlukemRC=$?
2302de962bdSlukemif test $RC != 0 ; then
2312de962bdSlukem	echo "ldapsearch failed ($RC)!"
2322de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2332de962bdSlukem	exit $RC
2342de962bdSlukemfi
2352de962bdSlukem
2362de962bdSlukemecho "Testing AND search on objectClass..."
2372de962bdSlukemecho "# Testing AND search on objectClass..." >> $SEARCHOUT
238*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2392de962bdSlukem	 "(&(objectClass=organization)(objectClass=dcObject))" >> $SEARCHOUT 2>&1
2402de962bdSlukem
2412de962bdSlukemRC=$?
2422de962bdSlukemif test $RC != 0 ; then
2432de962bdSlukem	echo "ldapsearch failed ($RC)!"
2442de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2452de962bdSlukem	exit $RC
2462de962bdSlukemfi
2472de962bdSlukem
2482de962bdSlukemecho "Testing OR search..."
2492de962bdSlukemecho "# Testing OR search..." >> $SEARCHOUT
250*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2512de962bdSlukem	 "(|(sn=kovalev)(givenName=mitya))" >> $SEARCHOUT 2>&1
2522de962bdSlukem
2532de962bdSlukemRC=$?
2542de962bdSlukemif test $RC != 0 ; then
2552de962bdSlukem	echo "ldapsearch failed ($RC)!"
2562de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2572de962bdSlukem	exit $RC
2582de962bdSlukemfi
2592de962bdSlukem
2602de962bdSlukemecho "Testing OR search on objectClass..."
2612de962bdSlukemecho "# Testing OR search on objectClass..." >> $SEARCHOUT
262*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2632de962bdSlukem	 "(|(objectClass=document)(objectClass=organization))" \
2642de962bdSlukem	>> $SEARCHOUT 2>&1
2652de962bdSlukem
2662de962bdSlukemRC=$?
2672de962bdSlukemif test $RC != 0 ; then
2682de962bdSlukem	echo "ldapsearch failed ($RC)!"
2692de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2702de962bdSlukem	exit $RC
2712de962bdSlukemfi
2722de962bdSlukem
2732de962bdSlukemecho "Testing NOT search..."
2742de962bdSlukemecho "# Testing NOT search..." >> $SEARCHOUT
275*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2762de962bdSlukem	 '(!(sn=kovalev))' >> $SEARCHOUT 2>&1
2772de962bdSlukem
2782de962bdSlukemRC=$?
2792de962bdSlukemif test $RC != 0 ; then
2802de962bdSlukem	echo "ldapsearch failed ($RC)!"
2812de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2822de962bdSlukem	exit $RC
2832de962bdSlukemfi
2842de962bdSlukem
2852de962bdSlukemecho "Testing NOT search on objectClass..."
2862de962bdSlukemecho "# Testing NOT search on objectClass..." >> $SEARCHOUT
287*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
2882de962bdSlukem	 '(!(objectClass=inetOrgPerson))' >> $SEARCHOUT 2>&1
2892de962bdSlukem
2902de962bdSlukemRC=$?
2912de962bdSlukemif test $RC != 0 ; then
2922de962bdSlukem	echo "ldapsearch failed ($RC)!"
2932de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
2942de962bdSlukem	exit $RC
2952de962bdSlukemfi
2962de962bdSlukem
2972de962bdSlukemecho "Testing NOT search on \"auxiliary\" objectClass..."
2982de962bdSlukemecho "# Testing NOT search on \"auxiliary\" objectClass..." >> $SEARCHOUT
299*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3002de962bdSlukem	 '(!(objectClass=dcObject))' >> $SEARCHOUT 2>&1
3012de962bdSlukem
3022de962bdSlukemRC=$?
3032de962bdSlukemif test $RC != 0 ; then
3042de962bdSlukem	echo "ldapsearch failed ($RC)!"
3052de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3062de962bdSlukem	exit $RC
3072de962bdSlukemfi
3082de962bdSlukem
3092de962bdSlukem#### Needs work...
3102de962bdSlukemecho "Testing NOT presence search... (disabled)"
3112de962bdSlukem###echo "# Testing NOT presence search..." >> $SEARCHOUT
312*e670fd5cSchristos###$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3132de962bdSlukem###	 '(!(sn=*))' >> $SEARCHOUT 2>&1
3142de962bdSlukem###
3152de962bdSlukem###RC=$?
3162de962bdSlukem###if test $RC != 0 ; then
3172de962bdSlukem###	echo "ldapsearch failed ($RC)!"
3182de962bdSlukem###	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3192de962bdSlukem###	exit $RC
3202de962bdSlukem###fi
3212de962bdSlukem
3222de962bdSlukemecho "Testing attribute inheritance in filter..."
3232de962bdSlukemecho "# Testing attribute inheritance in filter..." >> $SEARCHOUT
324*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3252de962bdSlukem	 "(name=example)" >> $SEARCHOUT 2>&1
3262de962bdSlukem
3272de962bdSlukemRC=$?
3282de962bdSlukemif test $RC != 0 ; then
3292de962bdSlukem	echo "ldapsearch failed ($RC)!"
3302de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3312de962bdSlukem	exit $RC
3322de962bdSlukemfi
3332de962bdSlukem
3342de962bdSlukem# ITS#4604
3352de962bdSlukemecho "Testing undefined attribute in filter..."
3362de962bdSlukemecho "# Testing undefined attribute in filter..." >> $SEARCHOUT
337*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3382de962bdSlukem	 "(|(o=example)(foobar=x))" >> $SEARCHOUT 2>&1
3392de962bdSlukem
3402de962bdSlukemRC=$?
3412de962bdSlukemif test $RC != 0 ; then
3422de962bdSlukem	echo "ldapsearch failed ($RC)!"
3432de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3442de962bdSlukem	exit $RC
3452de962bdSlukemfi
3462de962bdSlukem
3472de962bdSlukemecho "Testing objectClass inheritance in filter..."
3482de962bdSlukemecho "# Testing objectClass inheritance in filter..." >> $SEARCHOUT
349*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3502de962bdSlukem	 "(objectClass=person)" >> $SEARCHOUT 2>&1
3512de962bdSlukem
3522de962bdSlukemRC=$?
3532de962bdSlukemif test $RC != 0 ; then
3542de962bdSlukem	echo "ldapsearch failed ($RC)!"
3552de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3562de962bdSlukem	exit $RC
3572de962bdSlukemfi
3582de962bdSlukem
3592de962bdSlukemecho "Testing \"auxiliary\" objectClass in filter..."
3602de962bdSlukemecho "# Testing \"auxiliary\" objectClass in filter..." >> $SEARCHOUT
361*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3622de962bdSlukem	 "(objectClass=dcObject)" >> $SEARCHOUT 2>&1
3632de962bdSlukem
3642de962bdSlukemRC=$?
3652de962bdSlukemif test $RC != 0 ; then
3662de962bdSlukem	echo "ldapsearch failed ($RC)!"
3672de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3682de962bdSlukem	exit $RC
3692de962bdSlukemfi
3702de962bdSlukem
3712de962bdSlukemecho "Testing hasSubordinates in filter..."
3722de962bdSlukemecho "# Testing hasSubordinates in filter..." >> $SEARCHOUT
373*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3742de962bdSlukem	 "(hasSubordinates=TRUE)" >> $SEARCHOUT 2>&1
3752de962bdSlukem
3762de962bdSlukemRC=$?
3772de962bdSlukemif test $RC != 0 ; then
3782de962bdSlukem	echo "ldapsearch failed ($RC)!"
3792de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3802de962bdSlukem	exit $RC
3812de962bdSlukemfi
3822de962bdSlukem
3832de962bdSlukemecho "Testing entryUUID in filter..."
3842de962bdSlukemecho "# Testing entryUUID in filter..." >> $SEARCHOUT
385*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3862de962bdSlukem	 "(entryUUID=00000001-0000-0001-0000-000000000000)" >> $SEARCHOUT 2>&1
3872de962bdSlukem
3882de962bdSlukemRC=$?
3892de962bdSlukemif test $RC != 0 ; then
3902de962bdSlukem	echo "ldapsearch failed ($RC)!"
3912de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
3922de962bdSlukem	exit $RC
3932de962bdSlukemfi
3942de962bdSlukem
3952de962bdSlukemecho "Testing attribute inheritance in requested attributes..."
3962de962bdSlukemecho "# Testing attribute inheritance in requested attributes..." >> $SEARCHOUT
397*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
3982de962bdSlukem	 "(sn=kovalev)" name >> $SEARCHOUT 2>&1
3992de962bdSlukem
4002de962bdSlukemRC=$?
4012de962bdSlukemif test $RC != 0 ; then
4022de962bdSlukem	echo "ldapsearch failed ($RC)!"
4032de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4042de962bdSlukem	exit $RC
4052de962bdSlukemfi
4062de962bdSlukem
4072de962bdSlukemecho "Testing objectClass in requested attributes..."
4082de962bdSlukemecho "# Testing objectClass in requested attributes..." >> $SEARCHOUT
409*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
4102de962bdSlukem	 objectClass >> $SEARCHOUT 2>&1
4112de962bdSlukem
4122de962bdSlukemRC=$?
4132de962bdSlukemif test $RC != 0 ; then
4142de962bdSlukem	echo "ldapsearch failed ($RC)!"
4152de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4162de962bdSlukem	exit $RC
4172de962bdSlukemfi
4182de962bdSlukem
4192de962bdSlukemecho "Testing operational attributes in request..."
4202de962bdSlukemecho "# Testing operational attributes in request..." >> $SEARCHOUT
421*e670fd5cSchristos$LDAPSEARCH -H $URI1 -b "$BASEDN" -S "" \
4222de962bdSlukem	 '+' 2>&1 > $SEARCHFLT
4232de962bdSlukem
4242de962bdSlukemRC=$?
4252de962bdSlukemif test $RC != 0 ; then
4262de962bdSlukem	echo "ldapsearch failed ($RC)!"
4272de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4282de962bdSlukem	exit $RC
4292de962bdSlukemfi
4302de962bdSlukem
4312de962bdSlukemgrep -v '^entryCSN:' $SEARCHFLT >> $SEARCHOUT
4322de962bdSlukem
4332de962bdSlukemSIZELIMIT=4
4342de962bdSlukemecho "Testing size limit..."
435*e670fd5cSchristos$LDAPRSEARCH -H $URI1 -b "$BASEDN" \
4362de962bdSlukem	-z $SIZELIMIT -S "" '(objectClass=*)' >$SEARCHFLT 2>&1
4372de962bdSlukemRC=$?
4382de962bdSlukemCOUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHFLT`
4392de962bdSlukemcase $RC in
4402de962bdSlukem	0)
4412de962bdSlukem		if test x"$COUNT" != x ; then
4422de962bdSlukem			if test "$COUNT" -gt "$SIZELIMIT" ; then
4432de962bdSlukem				echo "...error: got $COUNT entries instead of the requested $SIZELIMIT"
4442de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
4452de962bdSlukem				exit 1
4462de962bdSlukem			fi
4472de962bdSlukem			echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)"
4482de962bdSlukem		else
4492de962bdSlukem			echo "...error: did not expect ldapsearch success ($RC)!"
4502de962bdSlukem			test $KILLSERVERS != no && kill -HUP $KILLPIDS
4512de962bdSlukem			exit 1
4522de962bdSlukem		fi
4532de962bdSlukem	;;
4542de962bdSlukem	4)
4552de962bdSlukem		if test x"$COUNT" != x ; then
4562de962bdSlukem			if test "$COUNT" = "$SIZELIMIT" ; then
4572de962bdSlukem				echo "...bumped into requested size limit ($SIZELIMIT)"
4582de962bdSlukem			else
4592de962bdSlukem				echo "...error: got $COUNT entries with a requested sizelimit of $SIZELIMIT"
4602de962bdSlukem				test $KILLSERVERS != no && kill -HUP $KILLPIDS
4612de962bdSlukem				exit $RC
4622de962bdSlukem			fi
4632de962bdSlukem		else
4642de962bdSlukem			echo "...error: bumped into server-side size limit, but got no entries!"
4652de962bdSlukem                        test $KILLSERVERS != no && kill -HUP $KILLPIDS
4662de962bdSlukem                        exit $RC
4672de962bdSlukem		fi
4682de962bdSlukem	;;
4692de962bdSlukem	*)
4702de962bdSlukem		echo "ldapsearch failed ($RC)!"
4712de962bdSlukem		test $KILLSERVERS != no && kill -HUP $KILLPIDS
4722de962bdSlukem		exit $RC
4732de962bdSlukem	;;
4742de962bdSlukemesac
4752de962bdSlukem
4762de962bdSlukemecho -n "Testing compare (should be TRUE)... "
477*e670fd5cSchristos$LDAPCOMPARE -H $URI1 "$BINDDN" \
4782de962bdSlukem	 "sn:kovalev" >> $TESTOUT 2>&1
4792de962bdSlukem
4802de962bdSlukemRC=$?
4812de962bdSlukemcase $RC in
4822de962bdSlukem6)
4832de962bdSlukem	echo "TRUE"
4842de962bdSlukem	;;
4852de962bdSlukem5)	echo "FALSE!"
4862de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4872de962bdSlukem	exit $RC
4882de962bdSlukem	;;
4892de962bdSlukem*)	echo "failed ($RC)!"
4902de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
4912de962bdSlukem	exit 1
4922de962bdSlukem	;;
4932de962bdSlukemesac
4942de962bdSlukem
4952de962bdSlukemecho -n "Testing compare (should be FALSE)... "
496*e670fd5cSchristos$LDAPCOMPARE -H $URI1 "$BINDDN" \
4972de962bdSlukem	 "cn:foobar" >> $TESTOUT 2>&1
4982de962bdSlukem
4992de962bdSlukemRC=$?
5002de962bdSlukemcase $RC in
5012de962bdSlukem6)
5022de962bdSlukem	echo "TRUE!"
5032de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
5042de962bdSlukem	exit $RC
5052de962bdSlukem	;;
5062de962bdSlukem5)	echo "FALSE"
5072de962bdSlukem	;;
5082de962bdSlukem*)	echo "failed ($RC)!"
5092de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
5102de962bdSlukem	exit 1
5112de962bdSlukem	;;
5122de962bdSlukemesac
5132de962bdSlukem
5142de962bdSlukemecho -n "Testing compare (should be UNDEFINED)... "
515*e670fd5cSchristos$LDAPCOMPARE -H $URI1 "$BINDDN" \
5162de962bdSlukem	 "o:example" >> $TESTOUT 2>&1
5172de962bdSlukem
5182de962bdSlukemRC=$?
5192de962bdSlukemcase $RC in
5202de962bdSlukem6)
5212de962bdSlukem	echo "TRUE!"
5222de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
5232de962bdSlukem	exit $RC
5242de962bdSlukem	;;
5252de962bdSlukem5)	echo "FALSE!"
5262de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
5272de962bdSlukem	exit $RC
5282de962bdSlukem	;;
5292de962bdSlukem*)	echo "failed ($RC)"
5302de962bdSlukem	;;
5312de962bdSlukemesac
5322de962bdSlukem
5332de962bdSlukemecho -n "Testing compare on hasSubordinates (should be TRUE)... "
534*e670fd5cSchristos$LDAPCOMPARE -H $URI1 "$BASEDN" \
5352de962bdSlukem	 "hasSubordinates:TRUE" >> $TESTOUT 2>&1
5362de962bdSlukem
5372de962bdSlukemRC=$?
5382de962bdSlukemcase $RC in
5392de962bdSlukem6)
5402de962bdSlukem	echo "TRUE"
5412de962bdSlukem	;;
5422de962bdSlukem5)	echo "FALSE!"
5432de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
5442de962bdSlukem	exit $RC
5452de962bdSlukem	;;
5462de962bdSlukem*)	echo "failed ($RC)!"
5472de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
5482de962bdSlukem	exit 1
5492de962bdSlukem	;;
5502de962bdSlukemesac
5512de962bdSlukem
5522de962bdSlukemecho "Filtering ldapsearch results..."
553ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
5542de962bdSlukemecho "Filtering original ldif..."
555ef2f90d3Sadam$LDIFFILTER < $SQLREAD > $LDIFFLT
5562de962bdSlukemecho "Comparing filter output..."
5572de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
5582de962bdSlukem
5592de962bdSlukemif test $? != 0 ; then
5602de962bdSlukem	echo "comparison failed - SQL search didn't succeed"
5612de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
5622de962bdSlukem	exit 1
5632de962bdSlukemfi
5642de962bdSlukem
5652de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
5662de962bdSlukem
5672de962bdSlukemecho ">>>>> Test succeeded"
5682de962bdSlukemexit 0
569