xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/test038-retcode (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
12de962bdSlukem#! /bin/sh
2d11b170bStron# Header
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
192de962bdSlukemif test $RETCODE = retcodeno; then
202de962bdSlukem	echo "Retcode overlay not available, test skipped"
212de962bdSlukem	exit 0
222de962bdSlukemfi
232de962bdSlukem
242de962bdSlukemmkdir -p $TESTDIR $DBDIR1
252de962bdSlukem
262de962bdSlukemecho "Running slapadd to build slapd database..."
27*e670fd5cSchristos. $CONFFILTER $BACKEND < $MCONF > $ADDCONF
282de962bdSlukem$SLAPADD -f $ADDCONF -l $LDIFORDERED
292de962bdSlukemRC=$?
302de962bdSlukemif test $RC != 0 ; then
312de962bdSlukem	echo "slapadd failed ($RC)!"
322de962bdSlukem	exit $RC
332de962bdSlukemfi
342de962bdSlukem
352de962bdSlukemecho "Running slapindex to index slapd database..."
36*e670fd5cSchristos. $CONFFILTER $BACKEND < $RETCODECONF > $CONF1
372de962bdSlukem$SLAPINDEX -f $CONF1
382de962bdSlukemRC=$?
392de962bdSlukemif test $RC != 0 ; then
402de962bdSlukem	echo "warning: slapindex failed ($RC)"
412de962bdSlukem	echo "  assuming no indexing support"
422de962bdSlukemfi
432de962bdSlukem
442de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
45*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
462de962bdSlukemPID=$!
472de962bdSlukemif test $WAIT != 0 ; then
482de962bdSlukem    echo PID $PID
492de962bdSlukem    read foo
502de962bdSlukemfi
512de962bdSlukemKILLPIDS="$PID"
522de962bdSlukem
532de962bdSlukemsleep 1
542de962bdSlukem
552de962bdSlukemecho "Testing slapd searching..."
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
632de962bdSlukem	echo "Waiting 5 seconds for 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
732de962bdSlukemecho "Testing search for timelimitExceeded..."
742de962bdSlukem$LDAPSEARCH -b "cn=timelimitExceeded,ou=RetCodes,$BASEDN" \
75*e670fd5cSchristos	-H $URI1 '(objectClass=*)' >> $TESTOUT 2>&1
762de962bdSlukemRC=$?
772de962bdSlukemif test $RC != 3 ; then
782de962bdSlukem	echo "ldapsearch failed ($RC)!"
792de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
80d11b170bStron	exit 1
812de962bdSlukemfi
822de962bdSlukem
832de962bdSlukemecho "Testing modify for unwillingToPerform..."
842de962bdSlukem$LDAPMODIFY -D "$MANAGERDN" -w $PASSWD \
85*e670fd5cSchristos	-H $URI1 >> $TESTOUT 2>&1 << EOMODS
862de962bdSlukemdn: cn=unwillingToPerform,ou=RetCodes,$BASEDN
872de962bdSlukemchangetype: delete
882de962bdSlukemEOMODS
892de962bdSlukemRC=$?
902de962bdSlukemif test $RC != 53 ; then
912de962bdSlukem	echo "ldapmodify failed ($RC)!"
922de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
93d11b170bStron	exit 1
942de962bdSlukemfi
952de962bdSlukem
962de962bdSlukemecho "Testing compare for success after sleep (2 s)..."
97*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \
982de962bdSlukem	"cn=Success w/ Delay,ou=RetCodes,$BASEDN" "cn:foo" >> $TESTOUT 2>&1
992de962bdSlukemRC=$?
1002de962bdSlukemif test $RC != 0 ; then
1012de962bdSlukem	echo "ldapcompare failed ($RC)!"
1022de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1032de962bdSlukem	exit $RC
1042de962bdSlukemfi
1052de962bdSlukem
1062de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
1072de962bdSlukem
1082de962bdSlukemecho ">>>>> Test succeeded"
1092de962bdSlukem
1102de962bdSlukemtest $KILLSERVERS != no && wait
1112de962bdSlukem
1122de962bdSlukemexit 0
113