X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=tests%2Fscripts%2Fsql-test000-read;h=2335b4bbb496d03a46b99271d7fe9e0c6a3b205f;hb=3743a5a68e4d608949d5fd04904733ee5c1ac959;hp=a3281fd711460664ed55243388d4e853c2ef8b24;hpb=e10186f1a556b55b3bd6ca7cf14843e84784e044;p=openldap diff --git a/tests/scripts/sql-test000-read b/tests/scripts/sql-test000-read index a3281fd711..2335b4bbb4 100755 --- a/tests/scripts/sql-test000-read +++ b/tests/scripts/sql-test000-read @@ -2,7 +2,7 @@ # $OpenLDAP$ ## This work is part of OpenLDAP Software . ## -## Copyright 1998-2004 The OpenLDAP Foundation. +## Copyright 1998-2012 The OpenLDAP Foundation. ## All rights reserved. ## ## Redistribution and use in source and binary forms, with or without @@ -71,15 +71,16 @@ fi echo -n "Testing incorrect bind (should fail)... " $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w "XXX" RC=$? -if test $RC == 0 ; then +if test $RC = 0 ; then echo "ldapwhoami should have failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 fi echo "Testing baseobject search..." echo "# Testing baseobject search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -s base >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -s base -S "" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -90,7 +91,8 @@ fi echo "Testing onelevel search..." echo "# Testing onelevel search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -s one >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -s one -S "" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -101,7 +103,20 @@ fi echo "Testing subtree search..." echo "# Testing subtree search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ + >> $SEARCHOUT 2>&1 + +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Testing subtree search with manageDSAit..." +echo "# Testing subtree search with manageDSAit..." >> $SEARCHOUT +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -M -S "" '*' ref \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -112,8 +127,8 @@ fi echo "Testing invalid filter..." echo "# Testing invalid filter..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - "(foo=)" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" "(foo=)" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -124,8 +139,8 @@ fi echo "Testing exact search..." echo "# Testing exact search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - "(sn=Kovalev)" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" "(sn=Kovalev)" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -136,8 +151,8 @@ fi echo "Testing substrings initial search..." echo "# Testing substrings initial search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - "(cn=m*)" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" "(cn=m*)" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -148,8 +163,8 @@ fi echo "Testing substrings any search..." echo "# Testing substrings any search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - "(cn=*m*)" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" "(cn=*m*)" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -160,8 +175,8 @@ fi echo "Testing substrings final search..." echo "# Testing substrings final search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - "(cn=*v)" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" "(cn=*v)" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -172,8 +187,8 @@ fi echo "Testing approx search..." echo "# Testing approx search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - "(sn~=kovalev)" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" "(sn~=kovalev)" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -184,7 +199,7 @@ fi echo "Testing extensible filter search..." echo "# Testing extensible filter search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(sn:caseExactMatch:=Kovalev)" >> $SEARCHOUT 2>&1 RC=$? @@ -196,7 +211,7 @@ fi echo "Testing search for telephoneNumber..." echo "# Testing search for telephoneNumber..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(telephoneNumber=3322334)" >> $SEARCHOUT 2>&1 RC=$? @@ -208,7 +223,7 @@ fi echo "Testing AND search..." echo "# Testing AND search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(&(sn=kovalev)(givenName=mitya))" >> $SEARCHOUT 2>&1 RC=$? @@ -220,7 +235,7 @@ fi echo "Testing AND search on objectClass..." echo "# Testing AND search on objectClass..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(&(objectClass=organization)(objectClass=dcObject))" >> $SEARCHOUT 2>&1 RC=$? @@ -232,7 +247,7 @@ fi echo "Testing OR search..." echo "# Testing OR search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(|(sn=kovalev)(givenName=mitya))" >> $SEARCHOUT 2>&1 RC=$? @@ -244,8 +259,9 @@ fi echo "Testing OR search on objectClass..." echo "# Testing OR search on objectClass..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - "(|(objectClass=document)(objectClass=organization))" >> $SEARCHOUT 2>&1 +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ + "(|(objectClass=document)(objectClass=organization))" \ + >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then @@ -256,7 +272,7 @@ fi echo "Testing NOT search..." echo "# Testing NOT search..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ '(!(sn=kovalev))' >> $SEARCHOUT 2>&1 RC=$? @@ -268,7 +284,7 @@ fi echo "Testing NOT search on objectClass..." echo "# Testing NOT search on objectClass..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ '(!(objectClass=inetOrgPerson))' >> $SEARCHOUT 2>&1 RC=$? @@ -280,7 +296,7 @@ fi echo "Testing NOT search on \"auxiliary\" objectClass..." echo "# Testing NOT search on \"auxiliary\" objectClass..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ '(!(objectClass=dcObject))' >> $SEARCHOUT 2>&1 RC=$? @@ -293,7 +309,7 @@ fi #### Needs work... echo "Testing NOT presence search... (disabled)" ###echo "# Testing NOT presence search..." >> $SEARCHOUT -###$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +###$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ ### '(!(sn=*))' >> $SEARCHOUT 2>&1 ### ###RC=$? @@ -305,7 +321,7 @@ echo "Testing NOT presence search... (disabled)" echo "Testing attribute inheritance in filter..." echo "# Testing attribute inheritance in filter..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(name=example)" >> $SEARCHOUT 2>&1 RC=$? @@ -315,9 +331,22 @@ if test $RC != 0 ; then exit $RC fi +# ITS#4604 +echo "Testing undefined attribute in filter..." +echo "# Testing undefined attribute in filter..." >> $SEARCHOUT +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ + "(|(o=example)(foobar=x))" >> $SEARCHOUT 2>&1 + +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + echo "Testing objectClass inheritance in filter..." echo "# Testing objectClass inheritance in filter..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(objectClass=person)" >> $SEARCHOUT 2>&1 RC=$? @@ -329,7 +358,7 @@ fi echo "Testing \"auxiliary\" objectClass in filter..." echo "# Testing \"auxiliary\" objectClass in filter..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(objectClass=dcObject)" >> $SEARCHOUT 2>&1 RC=$? @@ -341,7 +370,7 @@ fi echo "Testing hasSubordinates in filter..." echo "# Testing hasSubordinates in filter..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(hasSubordinates=TRUE)" >> $SEARCHOUT 2>&1 RC=$? @@ -353,7 +382,7 @@ fi echo "Testing entryUUID in filter..." echo "# Testing entryUUID in filter..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(entryUUID=00000001-0000-0001-0000-000000000000)" >> $SEARCHOUT 2>&1 RC=$? @@ -365,7 +394,7 @@ fi echo "Testing attribute inheritance in requested attributes..." echo "# Testing attribute inheritance in requested attributes..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ "(sn=kovalev)" name >> $SEARCHOUT 2>&1 RC=$? @@ -377,7 +406,7 @@ fi echo "Testing objectClass in requested attributes..." echo "# Testing objectClass in requested attributes..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ objectClass >> $SEARCHOUT 2>&1 RC=$? @@ -389,8 +418,8 @@ fi echo "Testing operational attributes in request..." echo "# Testing operational attributes in request..." >> $SEARCHOUT -$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ - '+' 2>&1 | grep -v '^entryCSN:' >> $SEARCHOUT +$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" -S "" \ + '+' 2>&1 > $SEARCHFLT RC=$? if test $RC != 0 ; then @@ -399,6 +428,51 @@ if test $RC != 0 ; then exit $RC fi +grep -v '^entryCSN:' $SEARCHFLT >> $SEARCHOUT + +SIZELIMIT=4 +echo "Testing size limit..." +$LDAPRSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \ + -z $SIZELIMIT -S "" '(objectClass=*)' >$SEARCHFLT 2>&1 +RC=$? +COUNT=`awk '/^# numEntries:/ {print $3}' $SEARCHFLT` +case $RC in + 0) + if test x"$COUNT" != x ; then + if test "$COUNT" -gt "$SIZELIMIT" ; then + echo "...error: got $COUNT entries instead of the requested $SIZELIMIT" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 + fi + echo "...didn't bump into the requested size limit ($SIZELIMIT; got $COUNT entries)" + else + echo "...error: did not expect ldapsearch success ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 + fi + ;; + 4) + if test x"$COUNT" != x ; then + if test "$COUNT" = "$SIZELIMIT" ; then + echo "...bumped into requested size limit ($SIZELIMIT)" + else + echo "...error: got $COUNT entries with a requested sizelimit of $SIZELIMIT" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC + fi + else + echo "...error: bumped into server-side size limit, but got no entries!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC + fi + ;; + *) + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC + ;; +esac + echo -n "Testing compare (should be TRUE)... " $LDAPCOMPARE -h $LOCALHOST -p $PORT1 "$BINDDN" \ "sn:kovalev" >> $TESTOUT 2>&1 @@ -414,7 +488,7 @@ case $RC in ;; *) echo "failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 ;; esac @@ -433,7 +507,7 @@ case $RC in ;; *) echo "failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 ;; esac @@ -456,13 +530,32 @@ case $RC in ;; esac +echo -n "Testing compare on hasSubordinates (should be TRUE)... " +$LDAPCOMPARE -h $LOCALHOST -p $PORT1 "$BASEDN" \ + "hasSubordinates:TRUE" >> $TESTOUT 2>&1 + +RC=$? +case $RC in +6) + echo "TRUE" + ;; +5) echo "FALSE!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC + ;; +*) echo "failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 + ;; +esac + echo "Filtering ldapsearch results..." -. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT +$LDIFFILTER < $SEARCHOUT > $SEARCHFLT echo "Filtering original ldif..." -. $LDIFFILTER < $SQLREAD > $LDIFFLT +$LDIFFILTER < $SQLREAD > $LDIFFLT echo "Comparing filter output..." $CMP $SEARCHFLT $LDIFFLT > $CMPOUT - + if test $? != 0 ; then echo "comparison failed - SQL search didn't succeed" test $KILLSERVERS != no && kill -HUP $KILLPIDS