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