xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/passwd-search (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
162de962bdSlukemif test $# -eq 0 ; then
172de962bdSlukem	test -z "$SRCDIR" && SRCDIR="."
182de962bdSlukemelse
192de962bdSlukem	SRCDIR=$1; shift
202de962bdSlukemfi
212de962bdSlukemif test $# -eq 1 ; then
222de962bdSlukem	BACKEND=$1; shift
232de962bdSlukemfi
242de962bdSlukem
252de962bdSlukemecho "running defines.sh $SRCDIR $BACKEND"
262de962bdSlukem. $SRCDIR/scripts/defines.sh
272de962bdSlukem
282de962bdSlukemif test -d "$TESTDIR"; then
292de962bdSlukem	echo "Cleaning up in $TESTDIR..."
302de962bdSlukem	/bin/rm -rf $TESTDIR/db.*
312de962bdSlukemfi
322de962bdSlukemmkdir -p $TESTDIR
332de962bdSlukem
342de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
35*e670fd5cSchristos. $CONFFILTER $BACKEND < $PASSWDCONF > $CONF1
36*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
372de962bdSlukemPID=$!
382de962bdSlukemif test ${WAIT-0} != 0 ; then
392de962bdSlukem    echo PID $PID
402de962bdSlukem    read foo
412de962bdSlukemfi
422de962bdSlukemKILLPIDS="$PID"
432de962bdSlukem
442de962bdSlukemecho "Testing slapd searching..."
452de962bdSlukemfor i in 0 1 2 3 4 5; do
46*e670fd5cSchristos	$LDAPSEARCH -L -b "$BASEDN" -H $URI1 \
472de962bdSlukem		'objectclass=*' > /dev/null 2>&1
482de962bdSlukem	RC=$?
492de962bdSlukem	if test $RC = 1 ; then
502de962bdSlukem		echo "Waiting 5 seconds for slapd to start..."
512de962bdSlukem		sleep 5
522de962bdSlukem	fi
532de962bdSlukemdone
542de962bdSlukem
552de962bdSlukemif test $RC != 0 ; then
562de962bdSlukem	echo "ldapsearch failed!"
572de962bdSlukem	test "$KILLSERVERS" != no && kill -HUP $KILLPIDS
582de962bdSlukem	exit $RC
592de962bdSlukemfi
602de962bdSlukem
612de962bdSlukemcat /dev/null > $TESTOUT
622de962bdSlukem
632de962bdSlukemecho "Testing base suffix searching..."
64*e670fd5cSchristos$LDAPSEARCH -L -S "" -b "$BASEDN" -s base -H $URI1 \
652de962bdSlukem	'(objectclass=*)' >> $TESTOUT 2>&1
662de962bdSlukemRC=$?
672de962bdSlukemif test $RC != 0 ; then
682de962bdSlukem	echo "ldapsearch failed!"
692de962bdSlukem	test "$KILLSERVERS" != no && kill -HUP $KILLPIDS
702de962bdSlukem	exit $RC
712de962bdSlukemfi
722de962bdSlukem
732de962bdSlukemecho " ------------ " >> $TESTOUT
742de962bdSlukem
752de962bdSlukemecho "Testing user searching..."
76*e670fd5cSchristos$LDAPSEARCH -L -S "" -b "uid=root,$BASEDN" -s base -H $URI1 \
772de962bdSlukem	'(objectclass=*)' >> $TESTOUT 2>&1
782de962bdSlukemRC=$?
792de962bdSlukemif test $RC != 0 ; then
802de962bdSlukem	echo "ldapsearch failed!"
812de962bdSlukem	test "$KILLSERVERS" != no && kill -HUP $KILLPIDS
822de962bdSlukem	exit $RC
832de962bdSlukemfi
842de962bdSlukem
852de962bdSlukemecho " ------------ " >> $TESTOUT
862de962bdSlukem
872de962bdSlukemecho "Testing exact searching..."
88*e670fd5cSchristos$LDAPSEARCH -L -S "" -b "$BASEDN" -H $URI1 \
892de962bdSlukem	'(uid=root)' >> $TESTOUT 2>&1
902de962bdSlukemRC=$?
912de962bdSlukemif test $RC != 0 ; then
922de962bdSlukem	echo "ldapsearch failed!"
932de962bdSlukem	test "$KILLSERVERS" != no && kill -HUP $KILLPIDS
942de962bdSlukem	exit $RC
952de962bdSlukemfi
962de962bdSlukem
972de962bdSlukemecho " ------------ " >> $TESTOUT
982de962bdSlukem
992de962bdSlukemecho "Testing OR searching..."
100*e670fd5cSchristos$LDAPSEARCH -L -S "" -b "$BASEDN" -H $URI1 \
1012de962bdSlukem	'(|(objectclass=person)(cn=root))' >> $TESTOUT 2>&1
1022de962bdSlukemRC=$?
1032de962bdSlukemif test $RC != 0 ; then
1042de962bdSlukem	echo "ldapsearch failed!"
1052de962bdSlukem	test "$KILLSERVERS" != no && kill -HUP $KILLPIDS
1062de962bdSlukem	exit $RC
1072de962bdSlukemfi
1082de962bdSlukem
1092de962bdSlukemecho " ------------ " >> $TESTOUT
1102de962bdSlukem
1112de962bdSlukemecho "Testing AND searching..."
112*e670fd5cSchristos$LDAPSEARCH -L -S "" -b "$BASEDN" -H $URI1 \
1132de962bdSlukem	'(&(objectclass=person)(cn=root))' >> $TESTOUT 2>&1
1142de962bdSlukemRC=$?
1152de962bdSlukemif test $RC != 0 ; then
1162de962bdSlukem	echo "ldapsearch failed!"
1172de962bdSlukem	test "$KILLSERVERS" != no && kill -HUP $KILLPIDS
1182de962bdSlukem	exit $RC
1192de962bdSlukemfi
1202de962bdSlukem
1212de962bdSlukemtest "$KILLSERVERS" != no && kill -HUP $KILLPIDS
1222de962bdSlukem
1232de962bdSlukemecho "Assuming everything is fine."
1242de962bdSlukem#echo "Comparing results"
125*e670fd5cSchristos#$CMP $TESTOUT $SEARCHOUTPROVIDER
1262de962bdSlukem#if test $? != 0 ; then
1272de962bdSlukem#	echo "Comparison failed"
1282de962bdSlukem#	exit 1
1292de962bdSlukem#fi
1302de962bdSlukem
1312de962bdSlukemecho ">>>>> Test succeeded"
1322de962bdSlukem
1332de962bdSlukemexit 0
134