Home | History | Annotate | Line # | Download | only in scripts
      1 #! /bin/sh
      2 # $OpenLDAP$
      3 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4 ##
      5 ## Copyright 1998-2024 The OpenLDAP Foundation.
      6 ## All rights reserved.
      7 ##
      8 ## Redistribution and use in source and binary forms, with or without
      9 ## modification, are permitted only as authorized by the OpenLDAP
     10 ## Public License.
     11 ##
     12 ## A copy of this license is available in the file LICENSE in the
     13 ## top-level directory of the distribution or, alternatively, at
     14 ## <http://www.OpenLDAP.org/license.html>.
     15 
     16 echo "running defines.sh"
     17 . $SRCDIR/scripts/defines.sh
     18 
     19 mkdir -p $TESTDIR $DBDIR1A $DBDIR1B $DBDIR1C
     20 
     21 echo "Running slapadd to build glued slapd databases..."
     22 . $CONFFILTER $BACKEND < $GLUECONF > $CONF1
     23 $SLAPADD -d $LVL -f $CONF1 -l $LDIFORDERED > $SLAPADDLOG1 2>&1
     24 RC=$?
     25 if test $RC != 0 ; then
     26 	echo "slapadd failed ($RC)!"
     27 	exit $RC
     28 fi
     29 
     30 echo "Starting slapd on TCP/IP port $PORT1..."
     31 $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
     32 PID=$!
     33 if test $WAIT != 0 ; then
     34     echo PID $PID
     35     read foo
     36 fi
     37 KILLPIDS="$PID"
     38 
     39 sleep 1
     40 
     41 echo "Using ldapsearch to retrieve all the entries..."
     42 for i in 0 1 2 3 4 5; do
     43 	$LDAPSEARCH -b "$BASEDN" -H $URI1 > $SEARCHOUT 2>&1
     44 	RC=$?
     45 	if test $RC = 0 ; then
     46 		break
     47 	fi
     48 	echo "Waiting 5 seconds for slapd to start..."
     49 	sleep 5
     50 done
     51 
     52 if test $RC != 0 ; then
     53 	echo "ldapsearch failed ($RC)!"
     54 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     55 	exit $RC
     56 fi
     57 
     58 echo "Filtering ldapsearch results..."
     59 $LDIFFILTER -s ldif=e < $SEARCHOUT > $SEARCHFLT
     60 echo "Filtering original ldif used to create database..."
     61 $LDIFFILTER -s ldif=e < $LDIFGLUED > $LDIFFLT
     62 echo "Comparing filter output..."
     63 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
     64 
     65 if test $? != 0 ; then
     66 	echo "comparison failed - database was not created correctly"
     67 	echo $SEARCHFLT $LDIFFLT
     68 	$DIFF $SEARCHFLT $LDIFFLT
     69 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     70 	exit 1
     71 fi
     72 
     73 if test $BACKEND != null ; then
     74 echo "Testing sizelimit..."
     75 $LDAPSEARCH -b "$BASEDN" -H $URI1 -s one -z 2 > $SEARCHOUT 2>&1
     76 RC=$?
     77 if test $RC = 0 ; then
     78 	echo "sizelimit not detected at end of search."
     79 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     80 	exit 1
     81 fi
     82 
     83 $LDAPSEARCH -b "$BASEDN" -H $URI1 -z 9 objectclass=OpenLDAPPerson > $SEARCHOUT 2>&1
     84 RC=$?
     85 if test $RC = 0 ; then
     86 	echo "sizelimit not detected at middle of search."
     87 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     88 	exit 1
     89 fi
     90 fi
     91 
     92 test $KILLSERVERS != no && kill -HUP $KILLPIDS
     93 
     94 echo ">>>>> Test succeeded"
     95 
     96 test $KILLSERVERS != no && wait
     97 
     98 exit 0
     99