1#! /bin/sh 2# $OpenLDAP$ 3## This work is part of OpenLDAP Software <http://www.openldap.org/>. 4## 5## Copyright 1998-2011 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 16echo "running defines.sh" 17. $SRCDIR/scripts/defines.sh 18 19mkdir -p $TESTDIR $DBDIR1 20 21echo "Running slapadd to build slapd database..." 22. $CONFFILTER $BACKEND $MONITORDB < $MCONF > $ADDCONF 23$SLAPADD -f $ADDCONF -l $LDIFORDERED 24RC=$? 25if test $RC != 0 ; then 26 echo "slapadd failed ($RC)!" 27 exit $RC 28fi 29 30echo "Running slapindex to index slapd database..." 31. $CONFFILTER $BACKEND $MONITORDB < $CONF > $CONF1 32$SLAPINDEX -f $CONF1 33RC=$? 34if test $RC != 0 ; then 35 echo "warning: slapindex failed ($RC)" 36 echo " assuming no indexing support" 37fi 38 39echo "Starting slapd on TCP/IP port $PORT1..." 40$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 & 41PID=$! 42if test $WAIT != 0 ; then 43 echo PID $PID 44 read foo 45fi 46KILLPIDS="$PID" 47 48sleep 1 49 50echo "Testing slapd searching..." 51for i in 0 1 2 3 4 5; do 52 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \ 53 '(objectclass=*)' > /dev/null 2>&1 54 RC=$? 55 if test $RC = 0 ; then 56 break 57 fi 58 echo "Waiting 5 seconds for slapd to start..." 59 sleep 5 60done 61 62if test $RC != 0 ; then 63 echo "ldapsearch failed ($RC)!" 64 test $KILLSERVERS != no && kill -HUP $KILLPIDS 65 exit $RC 66fi 67 68echo "Testing exact searching..." 69echo "# Testing exact searching..." > $SEARCHOUT 70$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 71 '(sn=jENSEN)' >> $SEARCHOUT 2>&1 72RC=$? 73if test $RC != 0 ; then 74 echo "ldapsearch failed ($RC)!" 75 test $KILLSERVERS != no && kill -HUP $KILLPIDS 76 exit $RC 77fi 78 79echo "Testing approximate searching..." 80echo "# Testing approximate searching..." >> $SEARCHOUT 81$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 82 '(sn~=jENSEN)' name >> $SEARCHOUT 2>&1 83RC=$? 84if test $RC != 0 ; then 85 echo "ldapsearch failed ($RC)!" 86 test $KILLSERVERS != no && kill -HUP $KILLPIDS 87 exit $RC 88fi 89 90echo "Testing OR searching..." 91echo "# Testing OR searching..." >> $SEARCHOUT 92$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 93 '(|(givenname=Xx*yY*Z)(cn=)(undef=*)(objectclass=groupofnames)(sn=jones)(member=cn=Manager,dc=example,dc=com)(uniqueMember=cn=Manager,dc=example,dc=com))' >> $SEARCHOUT 2>&1 94RC=$? 95if test $RC != 0 ; then 96 echo "ldapsearch failed ($RC)!" 97 test $KILLSERVERS != no && kill -HUP $KILLPIDS 98 exit $RC 99fi 100 101echo "Testing AND matching and ends-with searching..." 102echo "# Testing AND matching and ends-with searching..." >> $SEARCHOUT 103$LDAPSEARCH -S "" -b "ou=groups,$BASEDN" -s one -h $LOCALHOST -p $PORT1 \ 104 '(&(objectclass=groupofnames)(cn=A*)(member=cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com))' >> $SEARCHOUT 2>&1 105RC=$? 106if test $RC != 0 ; then 107 echo "ldapsearch failed ($RC)!" 108 test $KILLSERVERS != no && kill -HUP $KILLPIDS 109 exit $RC 110fi 111 112echo "Testing NOT searching..." 113echo "# Testing NOT searching..." >> $SEARCHOUT 114$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 115 '(!(objectclass=pilotPerson))' >> $SEARCHOUT 2>&1 116RC=$? 117if test $RC != 0 ; then 118 echo "ldapsearch failed ($RC)!" 119 test $KILLSERVERS != no && kill -HUP $KILLPIDS 120 exit $RC 121fi 122 123echo "Testing objectClass/attributeType inheritance ..." 124echo "# Testing objectClass/attributeType inheritance ..." >> $SEARCHOUT 125$LDAPSEARCH -M -a never -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 126 '(&(objectClass=inetorgperson)(userid=uham))' \ 127 "2.5.4.0" "userid" >> $SEARCHOUT 2>&1 128RC=$? 129if test $RC != 0 ; then 130 echo "ldapsearch failed ($RC)!" 131 test $KILLSERVERS != no && kill -HUP $KILLPIDS 132 exit $RC 133fi 134 135test $KILLSERVERS != no && kill -HUP $KILLPIDS 136 137LDIF=$SEARCHOUTMASTER 138 139echo "Filtering ldapsearch results..." 140$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 141echo "Filtering original ldif used to create database..." 142$LDIFFILTER < $LDIF > $LDIFFLT 143echo "Comparing filter output..." 144$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 145 146if test $? != 0 ; then 147 echo "Comparison failed" 148 exit 1 149fi 150 151echo ">>>>> Test succeeded" 152 153test $KILLSERVERS != no && wait 154 155exit 0 156