]> git.sur5r.net Git - openldap/blobdiff - tests/scripts/test020-proxycache
improve previous commit
[openldap] / tests / scripts / test020-proxycache
index ddd294e9a436f30dc83e09b0fce5ea62755aa62b..c6ec3db525b28933128a0edc797a9d6b8e3f7d70 100755 (executable)
@@ -2,7 +2,7 @@
 # $OpenLDAP$
 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
 ##
-## Copyright 1998-2003 The OpenLDAP Foundation.
+## Copyright 1998-2005 The OpenLDAP Foundation.
 ## All rights reserved.
 ##
 ## Redistribution and use in source and binary forms, with or without
@@ -13,7 +13,7 @@
 ## top-level directory of the distribution or, alternatively, at
 ## <http://www.OpenLDAP.org/license.html>.
 
-CACHETTL=60
+CACHETTL="1m"
 CACHE_ENTRY_LIMIT=10
 
 . $SRCDIR/scripts/defines.sh
@@ -23,6 +23,16 @@ if test $PROXYCACHE = pcacheno; then
        exit 0
 fi 
 
+if test $BACKLDAP = "ldapno" ; then 
+       echo "LDAP backend not available, test skipped"
+       exit 0
+fi 
+
+if test "x$LVL" = "x0" ; then
+       echo "test020 needs a minimal log level; setting to LDAP_DEBUG_NONE..."
+       LVL=2048
+fi
+
 mkdir -p $TESTDIR $DBDIR1 $DBDIR2
 
 # Test proxy caching:
@@ -44,6 +54,8 @@ if test $WAIT != 0 ; then
 fi
 KILLPIDS="$PID"
 
+sleep 1
+
 echo "Using ldapsearch to check that master slapd is running..."
 for i in 0 1 2 3 4 5; do
        $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
@@ -82,6 +94,8 @@ if test $WAIT != 0 ; then
 fi
 KILLPIDS="$KILLPIDS $CACHEPID"
 
+sleep 1
+
 echo "Using ldapsearch to check that proxy slapd is running..."
 for i in 0 1 2 3 4 5; do
        $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \
@@ -94,10 +108,19 @@ for i in 0 1 2 3 4 5; do
        sleep 5
 done
 
+if test $RC != 0 ; then
+       echo "ldapsearch failed ($RC)!"
+       test $KILLSERVERS != no && kill -HUP $KILLPIDS
+       exit $RC
+fi
+
+cat /dev/null > $SLAVEOUT
+
 echo "Making queries on the proxy cache..." 
 echo "Query 1: filter:(sn=Jon) attrs: all" 
+echo "# Query 1: filter:(sn=Jon) attrs: all" >> $SLAVEOUT
 $LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
-       'sn=Jon' > $SLAVEOUT 2>&1
+       'sn=Jon' >> $SLAVEOUT 2>&1
 RC=$?
 if test $RC != 0 ; then
        echo "ldapsearch failed ($RC)!"
@@ -106,6 +129,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Query 2: filter:(|(cn=*Jon*)(sn=Jon*)) attrs:cn sn title uid"  
+echo "# Query 2: filter:(|(cn=*Jon*)(sn=Jon*)) attrs:cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        '(|(cn=*Jon*)(sn=Jon*))' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -116,6 +140,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Query 3: filter:(sn=Smith*) attrs:cn sn title uid"  
+echo "# Query 3: filter:(sn=Smith*) attrs:cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'sn=Smith*' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -126,6 +151,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Query 4: filter:(sn=Doe*) attrs:cn sn title uid"  
+echo "# Query 4: filter:(sn=Doe*) attrs:cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'sn=Doe' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -136,6 +162,7 @@ if test $RC != 0 ; then
 fi
  
 echo "Query 5: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid"  
+echo "# Query 5: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'uid=bjorn' mail postaladdress telephonenumber cn uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -145,7 +172,8 @@ if test $RC != 0 ; then
        exit $RC
 fi
 
-echo "Query 6: filter:(mail=*@example.com) cn sn title uid"  
+echo "Query 6: filter:(mail=*@mail.alumni.example.com) cn sn title uid"  
+echo "# Query 6: filter:(mail=*@mail.alumni.example.com) cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'mail=*@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -156,6 +184,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Query 7: filter:(mail=*) cn sn title uid"  
+echo "# Query 7: filter:(mail=*) cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'mail=*' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -180,7 +209,7 @@ CACHED=`grep CACHEABLE $LOG2 | awk '{
                        printf "1" 
        }'`
 
-if test $CACHEABILITY = $CACHED ; then
+if test "$CACHEABILITY" = "$CACHED" ; then
        echo "Successfully verified cacheability"
 else 
        echo "Error in verifying cacheability"
@@ -189,6 +218,7 @@ else
 fi
 
 echo "Query 8: filter:(|(cn=*Jones)(sn=Jones)) attrs:cn sn title uid"  
+echo "# Query 8: filter:(|(cn=*Jones)(sn=Jones)) attrs:cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        '(|(cn=*Jones)(sn=Jones))' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -199,6 +229,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Query 9: filter:(sn=Smith) attrs:cn sn title uid"  
+echo "# Query 9: filter:(sn=Smith) attrs:cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'sn=Smith' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -209,6 +240,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Query 10: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid"  
+echo "# Query 10: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'uid=bjorn' mail postaladdress telephonenumber cn uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -218,7 +250,8 @@ if test $RC != 0 ; then
        exit $RC
 fi
 
-echo "Query 11: filter:(mail=*@example.com) cn sn title uid"  
+echo "Query 11: filter:(mail=jaj@mail.alumni.example.com) cn sn title uid"  
+echo "# Query 11: filter:(mail=jaj@mail.alumni.example.com) cn sn title uid" >> $SLAVEOUT
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'mail=jaj@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -250,12 +283,24 @@ ANSWERED=`grep ANSWERABLE $LOG2 | awk '{
 
 test $KILLSERVERS != no && kill -HUP $KILLPIDS
 
-if test $ANSWERABILITY = $ANSWERED ; then
+if test "$ANSWERABILITY" = "$ANSWERED" ; then
        echo "Successfully verified answerability"
 else 
        echo "Error in verifying answerability"
        exit 1
 fi
 
+echo "Filtering ldapsearch results..."
+. $LDIFFILTER < $SLAVEOUT > $SEARCHFLT
+echo "Filtering original ldif..."
+. $LDIFFILTER < $PROXYCACHEOUT > $LDIFFLT
+echo "Comparing filter output..."
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
+
+if test $? != 0 ; then
+       echo "Comparison failed"
+       exit 1
+fi
+
 echo ">>>>> Test succeeded"
 exit 0