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 192de962bdSlukem# 202de962bdSlukem# Test default referral 212de962bdSlukem# 222de962bdSlukem 232de962bdSlukemmkdir -p $TESTDIR $DBDIR1 $DBDIR2 242de962bdSlukem 252de962bdSlukemecho "Running slapadd to build slapd database..." 26*e670fd5cSchristos. $CONFFILTER $BACKEND < $CONF > $CONF1 272de962bdSlukem$SLAPADD -f $CONF1 -l $LDIFORDERED 282de962bdSlukemRC=$? 292de962bdSlukemif test $RC != 0 ; then 302de962bdSlukem echo "slapadd failed ($RC)!" 312de962bdSlukem exit $RC 322de962bdSlukemfi 332de962bdSlukem 34*e670fd5cSchristosecho "Starting provider slapd on TCP/IP port $PORT1..." 35*e670fd5cSchristos$SLAPD -n provider -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 362de962bdSlukemPID=$! 372de962bdSlukemif test $WAIT != 0 ; then 382de962bdSlukem echo PID $PID 392de962bdSlukem read foo 402de962bdSlukemfi 412de962bdSlukem 42*e670fd5cSchristosecho "Starting consumer slapd on TCP/IP port $PORT2..." 43*e670fd5cSchristos. $CONFFILTER $BACKEND < $REFCONSUMERCONF > $CONF2 44*e670fd5cSchristos$SLAPD -n consumer -f $CONF2 -h $URI2 -d $LVL > $LOG2 2>&1 & 45*e670fd5cSchristosCONSUMERPID=$! 462de962bdSlukemif test $WAIT != 0 ; then 47*e670fd5cSchristos echo CONSUMERPID $CONSUMERPID 482de962bdSlukem read foo 492de962bdSlukemfi 502de962bdSlukem 51*e670fd5cSchristosKILLPIDS="$PID $CONSUMERPID" 522de962bdSlukem 532de962bdSlukemsleep 1 542de962bdSlukem 55*e670fd5cSchristosecho "Testing for provider slapd..." 562de962bdSlukemfor i in 0 1 2 3 4 5; do 57*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 582de962bdSlukem 'objectclass=*' > /dev/null 2>&1 592de962bdSlukem RC=$? 602de962bdSlukem if test $RC = 0 ; then 612de962bdSlukem break 622de962bdSlukem fi 63*e670fd5cSchristos echo "Waiting 5 seconds for provider slapd to start..." 642de962bdSlukem sleep 5 652de962bdSlukemdone 662de962bdSlukem 672de962bdSlukemif test $RC != 0 ; then 682de962bdSlukem echo "ldapsearch failed ($RC)!" 692de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 702de962bdSlukem exit $RC 712de962bdSlukemfi 722de962bdSlukem 73*e670fd5cSchristosecho "Testing for consumer slapd..." 742de962bdSlukemfor i in 0 1 2 3 4 5; do 75*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI2 \ 762de962bdSlukem 'objectclass=*' > /dev/null 2>&1 772de962bdSlukem RC=$? 782de962bdSlukem if test $RC = 0 ; then 792de962bdSlukem break 802de962bdSlukem fi 81*e670fd5cSchristos echo "Waiting 5 seconds for consumer slapd to start..." 822de962bdSlukem sleep 5 832de962bdSlukemdone 842de962bdSlukem 852de962bdSlukemcat /dev/null > $SEARCHOUT 862de962bdSlukem 872de962bdSlukemecho "Testing exact searching..." 88*e670fd5cSchristos$LDAPSEARCH -C -S "" -b "$BASEDN" -H $URI2 \ 892de962bdSlukem 'sn=jensen' >> $SEARCHOUT 2>&1 902de962bdSlukemRC=$? 912de962bdSlukemif test $RC != 0 ; then 922de962bdSlukem echo "ldapsearch failed ($RC)!" 932de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 942de962bdSlukem exit $RC 952de962bdSlukemfi 962de962bdSlukem 972de962bdSlukemecho "Testing approximate searching..." 98*e670fd5cSchristos$LDAPSEARCH -C -S "" -b "$BASEDN" -H $URI2 \ 992de962bdSlukem '(sn=jENSEN)' name >> $SEARCHOUT 2>&1 1002de962bdSlukemRC=$? 1012de962bdSlukemif test $RC != 0 ; then 1022de962bdSlukem echo "ldapsearch failed ($RC)!" 1032de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1042de962bdSlukem exit $RC 1052de962bdSlukemfi 1062de962bdSlukem 1072de962bdSlukemecho "Testing OR searching..." 108*e670fd5cSchristos$LDAPSEARCH -C -S "" -b "$BASEDN" -H $URI2 \ 1092de962bdSlukem '(|(objectclass=groupofnames)(objectClass=groupofuniquenames)(sn=jones))' >> $SEARCHOUT 2>&1 1102de962bdSlukemRC=$? 1112de962bdSlukemif test $RC != 0 ; then 1122de962bdSlukem echo "ldapsearch failed ($RC)!" 1132de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1142de962bdSlukem exit $RC 1152de962bdSlukemfi 1162de962bdSlukem 1172de962bdSlukemecho "Testing AND matching and ends-with searching..." 118*e670fd5cSchristos$LDAPSEARCH -C -S "" -b "ou=groups,$BASEDN" -s one -H $URI2 \ 1192de962bdSlukem '(&(objectclass=groupofnames)(cn=A*))' >> $SEARCHOUT 2>&1 1202de962bdSlukemRC=$? 1212de962bdSlukemif test $RC != 0 ; then 1222de962bdSlukem echo "ldapsearch failed ($RC)!" 1232de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1242de962bdSlukem exit $RC 1252de962bdSlukemfi 1262de962bdSlukem 1272de962bdSlukemecho "Testing NOT searching..." 128*e670fd5cSchristos$LDAPSEARCH -C -S "" -b "$BASEDN" -H $URI2 \ 1292de962bdSlukem '(!(objectclass=pilotPerson))' >> $SEARCHOUT 2>&1 1302de962bdSlukemRC=$? 1312de962bdSlukemif test $RC != 0 ; then 1322de962bdSlukem echo "ldapsearch failed ($RC)!" 1332de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1342de962bdSlukem exit $RC 1352de962bdSlukemfi 1362de962bdSlukem 1372de962bdSlukemecho "Testing objectClass/attributeType inheritance ..." 138*e670fd5cSchristos$LDAPSEARCH -M -a never -S "" -b "$BASEDN" -H $URI1 \ 1392de962bdSlukem '(&(objectClass=inetorgperson)(userid=uham))' \ 1402de962bdSlukem "2.5.4.0" "userid" >> $SEARCHOUT 2>&1 1412de962bdSlukemRC=$? 1422de962bdSlukemif test $RC != 0 ; then 1432de962bdSlukem echo "ldapsearch failed ($RC)!" 1442de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1452de962bdSlukem exit $RC 1462de962bdSlukemfi 1472de962bdSlukem 1482de962bdSlukemecho "Testing dontUseCopy control..." 149*e670fd5cSchristos$LDAPSEARCH -C -S "" -b "$BASEDN" -H $URI2 \ 1502de962bdSlukem -E \!dontUseCopy \ 1512de962bdSlukem 'sn=jensen' >> $SEARCHOUT 1522de962bdSlukemRC=$? 1532de962bdSlukemif test $RC = 10 ; then 1542de962bdSlukem echo "ldapsearch failed as expected ($RC)" 1552de962bdSlukemelse 1562de962bdSlukem echo "ldapsearch did not error as expected ($RC)!" 1572de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1582de962bdSlukem exit $RC 1592de962bdSlukemfi 1602de962bdSlukem 1612de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS 1622de962bdSlukem 163*e670fd5cSchristosLDIF=$SEARCHOUTPROVIDER 1642de962bdSlukem 1652de962bdSlukemecho "Filtering ldapsearch results..." 166ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 1672de962bdSlukemecho "Filtering original ldif used to create database..." 168ef2f90d3Sadam$LDIFFILTER < $LDIF > $LDIFFLT 1692de962bdSlukemecho "Comparing filter output..." 1702de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 1712de962bdSlukem 1722de962bdSlukemif test $? != 0 ; then 1732de962bdSlukem echo "Comparison failed" 1742de962bdSlukem exit 1 1752de962bdSlukemfi 1762de962bdSlukem 1772de962bdSlukemecho ">>>>> Test succeeded" 1782de962bdSlukem 1792de962bdSlukemtest $KILLSERVERS != no && wait 1802de962bdSlukem 1812de962bdSlukemexit 0 182