12de962bdSlukem#! /bin/sh 2d11b170bStron# $OpenLDAP$ 32de962bdSlukem## This work is part of OpenLDAP Software <http://www.openldap.org/>. 42de962bdSlukem## 5*e670fd5cSchristos## Copyright 1998-2021 The OpenLDAP Foundation. 62de962bdSlukem## All rights reserved. 72de962bdSlukem## 82de962bdSlukem## Redistribution and use in source and binary forms, with or without 92de962bdSlukem## modification, are permitted only as authorized by the OpenLDAP 102de962bdSlukem## Public License. 112de962bdSlukem## 122de962bdSlukem## A copy of this license is available in the file LICENSE in the 132de962bdSlukem## top-level directory of the distribution or, alternatively, at 142de962bdSlukem## <http://www.OpenLDAP.org/license.html>. 152de962bdSlukem 162de962bdSlukemecho "running defines.sh" 172de962bdSlukem. $SRCDIR/scripts/defines.sh 182de962bdSlukem 192de962bdSlukemmkdir -p $TESTDIR $DBDIR1 202de962bdSlukem 212de962bdSlukemecho "Running slapadd to build slapd database..." 22*e670fd5cSchristos. $CONFFILTER $BACKEND < $MCONF > $ADDCONF 232de962bdSlukem$SLAPADD -f $ADDCONF -l $LDIFORDERED 242de962bdSlukemRC=$? 252de962bdSlukemif test $RC != 0 ; then 262de962bdSlukem echo "slapadd failed ($RC)!" 272de962bdSlukem exit $RC 282de962bdSlukemfi 292de962bdSlukem 302de962bdSlukemecho "Running slapindex to index slapd database..." 31*e670fd5cSchristos. $CONFFILTER $BACKEND < $CONF > $CONF1 322de962bdSlukem$SLAPINDEX -f $CONF1 332de962bdSlukemRC=$? 342de962bdSlukemif test $RC != 0 ; then 352de962bdSlukem echo "warning: slapindex failed ($RC)" 362de962bdSlukem echo " assuming no indexing support" 372de962bdSlukemfi 382de962bdSlukem 392de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..." 40*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 412de962bdSlukemPID=$! 422de962bdSlukemif test $WAIT != 0 ; then 432de962bdSlukem echo PID $PID 442de962bdSlukem read foo 452de962bdSlukemfi 462de962bdSlukemKILLPIDS="$PID" 472de962bdSlukem 482de962bdSlukemsleep 1 492de962bdSlukem 502de962bdSlukemecho "Testing slapd searching..." 512de962bdSlukemfor i in 0 1 2 3 4 5; do 52*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 532de962bdSlukem '(objectclass=*)' > /dev/null 2>&1 542de962bdSlukem RC=$? 552de962bdSlukem if test $RC = 0 ; then 562de962bdSlukem break 572de962bdSlukem fi 582de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 592de962bdSlukem sleep 5 602de962bdSlukemdone 612de962bdSlukem 622de962bdSlukemif test $RC != 0 ; then 632de962bdSlukem echo "ldapsearch failed ($RC)!" 642de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 652de962bdSlukem exit $RC 662de962bdSlukemfi 672de962bdSlukem 682de962bdSlukemecho "Testing exact searching..." 69d11b170bStronecho "# Testing exact searching..." > $SEARCHOUT 70*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 712de962bdSlukem '(sn=jENSEN)' >> $SEARCHOUT 2>&1 722de962bdSlukemRC=$? 732de962bdSlukemif test $RC != 0 ; then 742de962bdSlukem echo "ldapsearch failed ($RC)!" 752de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 762de962bdSlukem exit $RC 772de962bdSlukemfi 782de962bdSlukem 792de962bdSlukemecho "Testing approximate searching..." 80d11b170bStronecho "# Testing approximate searching..." >> $SEARCHOUT 81*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 822de962bdSlukem '(sn~=jENSEN)' name >> $SEARCHOUT 2>&1 832de962bdSlukemRC=$? 842de962bdSlukemif test $RC != 0 ; then 852de962bdSlukem echo "ldapsearch failed ($RC)!" 862de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 872de962bdSlukem exit $RC 882de962bdSlukemfi 892de962bdSlukem 902de962bdSlukemecho "Testing OR searching..." 91d11b170bStronecho "# Testing OR searching..." >> $SEARCHOUT 92*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 932de962bdSlukem '(|(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 942de962bdSlukemRC=$? 952de962bdSlukemif test $RC != 0 ; then 962de962bdSlukem echo "ldapsearch failed ($RC)!" 972de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 982de962bdSlukem exit $RC 992de962bdSlukemfi 1002de962bdSlukem 1012de962bdSlukemecho "Testing AND matching and ends-with searching..." 102d11b170bStronecho "# Testing AND matching and ends-with searching..." >> $SEARCHOUT 103*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=groups,$BASEDN" -s one -H $URI1 \ 1042de962bdSlukem '(&(objectclass=groupofnames)(cn=A*)(member=cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com))' >> $SEARCHOUT 2>&1 1052de962bdSlukemRC=$? 1062de962bdSlukemif test $RC != 0 ; then 1072de962bdSlukem echo "ldapsearch failed ($RC)!" 1082de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1092de962bdSlukem exit $RC 1102de962bdSlukemfi 1112de962bdSlukem 1122de962bdSlukemecho "Testing NOT searching..." 113d11b170bStronecho "# Testing NOT searching..." >> $SEARCHOUT 114*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 1152de962bdSlukem '(!(objectclass=pilotPerson))' >> $SEARCHOUT 2>&1 1162de962bdSlukemRC=$? 1172de962bdSlukemif test $RC != 0 ; then 1182de962bdSlukem echo "ldapsearch failed ($RC)!" 1192de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1202de962bdSlukem exit $RC 1212de962bdSlukemfi 1222de962bdSlukem 1232de962bdSlukemecho "Testing objectClass/attributeType inheritance ..." 124d11b170bStronecho "# Testing objectClass/attributeType inheritance ..." >> $SEARCHOUT 125*e670fd5cSchristos$LDAPSEARCH -M -a never -S "" -b "$BASEDN" -H $URI1 \ 1262de962bdSlukem '(&(objectClass=inetorgperson)(userid=uham))' \ 1272de962bdSlukem "2.5.4.0" "userid" >> $SEARCHOUT 2>&1 1282de962bdSlukemRC=$? 1292de962bdSlukemif test $RC != 0 ; then 1302de962bdSlukem echo "ldapsearch failed ($RC)!" 1312de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1322de962bdSlukem exit $RC 1332de962bdSlukemfi 1342de962bdSlukem 1352de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS 1362de962bdSlukem 137*e670fd5cSchristosLDIF=$SEARCHOUTPROVIDER 1382de962bdSlukem 1392de962bdSlukemecho "Filtering ldapsearch results..." 140ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 1412de962bdSlukemecho "Filtering original ldif used to create database..." 142ef2f90d3Sadam$LDIFFILTER < $LDIF > $LDIFFLT 1432de962bdSlukemecho "Comparing filter output..." 1442de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 1452de962bdSlukem 1462de962bdSlukemif test $? != 0 ; then 1472de962bdSlukem echo "Comparison failed" 1482de962bdSlukem exit 1 1492de962bdSlukemfi 1502de962bdSlukem 1512de962bdSlukemecho ">>>>> Test succeeded" 1522de962bdSlukem 1532de962bdSlukemtest $KILLSERVERS != no && wait 1542de962bdSlukem 1552de962bdSlukemexit 0 156