]> git.sur5r.net Git - openldap/blobdiff - tests/scripts/test020-proxycache
more tests
[openldap] / tests / scripts / test020-proxycache
index 994e72f3aca27421d48422d9cf86db7c03570585..797d828802a91fc494f33ed1a9be4063fa0af1b6 100755 (executable)
@@ -1,16 +1,38 @@
 #! /bin/sh
 # $OpenLDAP$
+## This work is part of OpenLDAP Software <http://www.openldap.org/>.
+##
+## Copyright 1998-2005 The OpenLDAP Foundation.
+## All rights reserved.
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted only as authorized by the OpenLDAP
+## Public License.
+##
+## A copy of this license is available in the file LICENSE in the
+## top-level directory of the distribution or, alternatively, at
+## <http://www.OpenLDAP.org/license.html>.
 
 CACHETTL=60
 CACHE_ENTRY_LIMIT=10
 
 . $SRCDIR/scripts/defines.sh
 
-if test $PROXYCACHE = no; then 
-       echo "Proxy caching requires back-meta AND (back-ldbm OR back-bdb)" 
+if test $PROXYCACHE = pcacheno; then 
+       echo "Proxy cache overlay not available, test skipped"
        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:
@@ -23,14 +45,14 @@ mkdir -p $TESTDIR $DBDIR1 $DBDIR2
 # - verify answerability
 
 echo "Starting master slapd on TCP/IP port $PORT1..."
-. $CONFFILTER < $CACHEMASTERCONF > $CONF
-$SLAPD -f $CONF -h $URI1 -d $LVL > $LOG1 2>&1 &
+. $CONFFILTER < $CACHEMASTERCONF > $CONF1
+$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
 PID=$!
 if test $WAIT != 0 ; then
        echo PID $PID
        read foo
 fi
-KILLPIDS="$PIDS"
+KILLPIDS="$PID"
 
 echo "Using ldapsearch to check that master slapd is running..."
 for i in 0 1 2 3 4 5; do
@@ -82,6 +104,12 @@ 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
+
 echo "Making queries on the proxy cache..." 
 echo "Query 1: filter:(sn=Jon) attrs: all" 
 $LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
@@ -133,7 +161,7 @@ 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"  
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'mail=*@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -168,7 +196,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"
@@ -206,7 +234,7 @@ 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"  
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
        'mail=jaj@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1
 RC=$?
@@ -238,12 +266,20 @@ 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 "Comparing cache output..."
+$CMP $SLAVEOUT $PROXYCACHEOUT > $CMPOUT
+
+if test $? != 0 ; then
+       echo "Comparison failed"
+       exit 1
+fi
+
 echo ">>>>> Test succeeded"
 exit 0