xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/test008-concurrency (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
162de962bdSlukemecho "running defines.sh"
172de962bdSlukem. $SRCDIR/scripts/defines.sh
182de962bdSlukem
194e6df137Slukemif test x$TESTLOOPS = x ; then
204e6df137Slukem	TESTLOOPS=50
214e6df137Slukemfi
224e6df137Slukem
232de962bdSlukemmkdir -p $TESTDIR $DBDIR1
242de962bdSlukem
252de962bdSlukemecho "Running slapadd to build slapd database..."
26*e670fd5cSchristos. $CONFFILTER $BACKEND < $CONF > $CONF1
272de962bdSlukem$SLAPADD -f $CONF1 -l $LDIFORDERED -d -1 2> $SLAPADDLOG1
282de962bdSlukemRC=$?
292de962bdSlukemif test $RC != 0 ; then
302de962bdSlukem	echo "slapadd failed ($RC)!"
312de962bdSlukem	exit $RC
322de962bdSlukemfi
332de962bdSlukem
342de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
35*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
362de962bdSlukemPID=$!
372de962bdSlukemif test $WAIT != 0 ; then
382de962bdSlukem    echo PID $PID
392de962bdSlukem    read foo
402de962bdSlukemfi
412de962bdSlukemKILLPIDS="$PID"
422de962bdSlukem
432de962bdSlukemsleep 1
442de962bdSlukem
452de962bdSlukemecho "Using ldapsearch to check that slapd is running..."
462de962bdSlukemfor i in 0 1 2 3 4 5; do
47*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
482de962bdSlukem		'objectclass=*' > /dev/null 2>&1
492de962bdSlukem	RC=$?
502de962bdSlukem	if test $RC = 0 ; then
512de962bdSlukem		break
522de962bdSlukem	fi
532de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
542de962bdSlukem	sleep 5
552de962bdSlukemdone
562de962bdSlukem
574e6df137Slukem# fix test data to include back-monitor, if available
584e6df137Slukem# NOTE: copies do_* files from $DATADIR to $TESTDIR
59*e670fd5cSchristos$MONITORDATA "$DATADIR" "$TESTDIR"
604e6df137Slukem
612de962bdSlukemecho "Using tester for concurrent server access..."
62*e670fd5cSchristos$SLAPDTESTER -P "$PROGDIR" -d "$TESTDIR" -H $URI1 -D "$MANAGERDN" -w $PASSWD -l $TESTLOOPS
632de962bdSlukemRC=$?
642de962bdSlukem
652de962bdSlukemif test $RC != 0 ; then
662de962bdSlukem	echo "slapd-tester failed ($RC)!"
672de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
682de962bdSlukem	exit $RC
692de962bdSlukemfi
702de962bdSlukem
712de962bdSlukemecho "Using ldapsearch to retrieve all the entries..."
72*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
732de962bdSlukem			'objectClass=*' > $SEARCHOUT 2>&1
742de962bdSlukemRC=$?
752de962bdSlukem
762de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
772de962bdSlukem
782de962bdSlukemif test $RC != 0 ; then
792de962bdSlukem	echo "ldapsearch failed ($RC)!"
802de962bdSlukem	exit $RC
812de962bdSlukemfi
822de962bdSlukem
832de962bdSlukemecho "Filtering ldapsearch results..."
84ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
852de962bdSlukemecho "Filtering original ldif used to create database..."
86ef2f90d3Sadam$LDIFFILTER < $LDIF > $LDIFFLT
872de962bdSlukemecho "Comparing filter output..."
882de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
892de962bdSlukem
902de962bdSlukemif test $? != 0 ; then
912de962bdSlukem	echo "comparison failed - database was not created correctly"
922de962bdSlukem	exit 1
932de962bdSlukemfi
942de962bdSlukem
952de962bdSlukemecho ">>>>> Test succeeded"
962de962bdSlukem
972de962bdSlukemtest $KILLSERVERS != no && wait
982de962bdSlukem
992de962bdSlukemexit 0
100