xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/test016-subref (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
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
162de962bdSlukemRCODE=10
17ef2f90d3Sadamtest $BACKEND = null && RCODE=0
182de962bdSlukem
192de962bdSlukemecho "running defines.sh"
202de962bdSlukem. $SRCDIR/scripts/defines.sh
212de962bdSlukem
222de962bdSlukemmkdir -p $TESTDIR $DBDIR1
232de962bdSlukem
242de962bdSlukemecho "Running slapadd to build slapd database..."
25*e670fd5cSchristos. $CONFFILTER $BACKEND < $RCONF > $CONF1
262de962bdSlukem$SLAPADD -f $CONF1 -l $LDIFREF
272de962bdSlukemRC=$?
282de962bdSlukemif test $RC != 0 ; then
292de962bdSlukem	echo "slapadd failed ($RC)!"
302de962bdSlukem	exit $RC
312de962bdSlukemfi
322de962bdSlukem
332de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
34*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
352de962bdSlukemPID=$!
362de962bdSlukemif test $WAIT != 0 ; then
372de962bdSlukem    echo PID $PID
382de962bdSlukem    read foo
392de962bdSlukemfi
402de962bdSlukemKILLPIDS="$PID"
412de962bdSlukem
422de962bdSlukemsleep 1
432de962bdSlukem
442de962bdSlukemecho "Testing slapd searching..."
452de962bdSlukemfor i in 0 1 2 3 4 5; do
46*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
472de962bdSlukem		'(objectclass=*)' > /dev/null 2>&1
482de962bdSlukem	RC=$?
492de962bdSlukem	if test $RC = 0 ; then
502de962bdSlukem		break
512de962bdSlukem	fi
522de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
532de962bdSlukem	sleep 5
542de962bdSlukemdone
552de962bdSlukem
562de962bdSlukemif test $RC != 0 ; then
572de962bdSlukem	echo "ldapsearch failed ($RC)!"
582de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
592de962bdSlukem	exit $RC
602de962bdSlukemfi
612de962bdSlukem
622de962bdSlukemcat /dev/null > $SEARCHOUT
632de962bdSlukem
642de962bdSlukemecho "Testing ManageDsaIT searching at $REFDN..."
65*e670fd5cSchristos$LDAPRSEARCH -S "" -MM -b "$REFDN" -H $URI1 \
662de962bdSlukem	'(objectClass=referral)' '*' ref >> $SEARCHOUT 2>&1
672de962bdSlukemRC=$?
682de962bdSlukemif test $RC != 0 ; then
692de962bdSlukem	echo "ldapsearch failed ($RC)!"
702de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
712de962bdSlukem	exit $RC
722de962bdSlukemfi
732de962bdSlukem
742de962bdSlukemecho "Testing ManageDsaIT searching at referral object..."
75*e670fd5cSchristos$LDAPRSEARCH -S "" -MM -b "o=abc,$REFDN" -H $URI1 \
762de962bdSlukem	'(objectClass=referral)' '*' ref >> $SEARCHOUT 2>&1
772de962bdSlukemRC=$?
782de962bdSlukemif test $RC != 0 ; then
792de962bdSlukem	echo "ldapsearch failed ($RC)!"
802de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
812de962bdSlukem	exit $RC
822de962bdSlukemfi
832de962bdSlukem
842de962bdSlukemecho "Testing ManageDsaIT searching below referral object..."
85*e670fd5cSchristos$LDAPRSEARCH -S "" -MM -b "uid=xxx,o=abc,$REFDN" -H $URI1 \
862de962bdSlukem	'(objectClass=referral)' '*' ref >> $SEARCHOUT 2>&1
872de962bdSlukemRC=$?
882de962bdSlukemif test $RC != $RCODE ; then
892de962bdSlukem	echo "ldapsearch: unexpected result ($RC)! (referral expected)"
902de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
91ef2f90d3Sadam	exit 1
922de962bdSlukemfi
932de962bdSlukem
942de962bdSlukemXREFDN="$REFDN"
952de962bdSlukemecho "Testing base searching at $XREFDN..."
96*e670fd5cSchristos$LDAPRSEARCH -S "" -s base -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
972de962bdSlukemRC=$?
982de962bdSlukemif test $RC != 0 ; then
992de962bdSlukem	echo "ldapsearch failed ($RC)!"
1002de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1012de962bdSlukem	exit $RC
1022de962bdSlukemfi
1032de962bdSlukem
1042de962bdSlukemecho "Testing one-level searching at $XREFDN..."
105*e670fd5cSchristos$LDAPRSEARCH -S "" -s one -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1062de962bdSlukemRC=$?
1072de962bdSlukemif test $RC != 0 ; then
1082de962bdSlukem	echo "ldapsearch failed ($RC)!"
1092de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1102de962bdSlukem	exit $RC
1112de962bdSlukemfi
1122de962bdSlukem
1132de962bdSlukemecho "Testing subtree searching at $XREFDN..."
114*e670fd5cSchristos$LDAPRSEARCH -S "" -s sub -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1152de962bdSlukemRC=$?
1162de962bdSlukemif test $RC != 0 ; then
1172de962bdSlukem	echo "ldapsearch failed ($RC)!"
1182de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1192de962bdSlukem	exit $RC
1202de962bdSlukemfi
1212de962bdSlukem
1222de962bdSlukemXREFDN="o=abc,$REFDN"
1232de962bdSlukemecho "Testing base searching at $XREFDN..."
124*e670fd5cSchristos$LDAPRSEARCH -S "" -s base -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1252de962bdSlukemRC=$?
1262de962bdSlukemif test $RC != $RCODE ; then
1272de962bdSlukem	echo "ldapsearch: unexpected result ($RC)! (referral expected)"
1282de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
129ef2f90d3Sadam	exit 1
1302de962bdSlukemfi
1312de962bdSlukem
1322de962bdSlukemecho "Testing one-level searching at $XREFDN..."
133*e670fd5cSchristos$LDAPRSEARCH -S "" -s one -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1342de962bdSlukemRC=$?
1352de962bdSlukemif test $RC != $RCODE ; then
1362de962bdSlukem	echo "ldapsearch: unexpected result ($RC)! (referral expected)"
1372de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
138ef2f90d3Sadam	exit 1
1392de962bdSlukemfi
1402de962bdSlukem
1412de962bdSlukemecho "Testing subtree searching at $XREFDN..."
142*e670fd5cSchristos$LDAPRSEARCH -S "" -s sub -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1432de962bdSlukemRC=$?
1442de962bdSlukemif test $RC != $RCODE ; then
1452de962bdSlukem	echo "ldapsearch: unexpected result ($RC)! (referral expected)"
1462de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
147ef2f90d3Sadam	exit 1
1482de962bdSlukemfi
1492de962bdSlukem
1502de962bdSlukemXREFDN="uid=xxx,o=abc,$REFDN"
1512de962bdSlukemecho "Testing base searching at $XREFDN..."
152*e670fd5cSchristos$LDAPRSEARCH -S "" -s base -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1532de962bdSlukemRC=$?
1542de962bdSlukemif test $RC != $RCODE ; then
1552de962bdSlukem	echo "ldapsearch: unexpected result ($RC)! (referral expected)"
1562de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
157ef2f90d3Sadam	exit 1
1582de962bdSlukemfi
1592de962bdSlukem
1602de962bdSlukemecho "Testing one-level searching at $XREFDN..."
161*e670fd5cSchristos$LDAPRSEARCH -S "" -s one -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1622de962bdSlukemRC=$?
1632de962bdSlukemif test $RC != $RCODE ; then
1642de962bdSlukem	echo "ldapsearch: unexpected result ($RC)! (referral expected)"
1652de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
166ef2f90d3Sadam	exit 1
1672de962bdSlukemfi
1682de962bdSlukem
1692de962bdSlukemecho "Testing subtree searching at $XREFDN..."
170*e670fd5cSchristos$LDAPRSEARCH -S "" -s sub -b "$XREFDN" -H $URI1 1.1 >> $SEARCHOUT 2>&1
1712de962bdSlukemRC=$?
1722de962bdSlukemif test $RC != $RCODE ; then
1732de962bdSlukem	echo "ldapsearch: unexpected result ($RC)! (referral expected)"
1742de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
175ef2f90d3Sadam	exit 1
1762de962bdSlukemfi
1772de962bdSlukem
1782de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
1792de962bdSlukem
180*e670fd5cSchristosLDIF=$SEARCHOUTPROVIDER
1812de962bdSlukemecho "Filtering ldapsearch results..."
182ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
1832de962bdSlukemecho "Filtering expected LDIF for comparison..."
184ef2f90d3Sadam$LDIFFILTER < $REFERRALOUT > $LDIFFLT
1852de962bdSlukemecho "Comparing filter output..."
1862de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
1872de962bdSlukem
1882de962bdSlukemif test $? != 0 ; then
1892de962bdSlukem	echo "Comparison failed"
1902de962bdSlukem	exit 1
1912de962bdSlukemfi
1922de962bdSlukem
1932de962bdSlukemecho ">>>>> Test succeeded"
1942de962bdSlukem
1952de962bdSlukemtest $KILLSERVERS != no && wait
1962de962bdSlukem
1972de962bdSlukemexit 0
198