test008-concurrency revision 1.1.1.1
1235537Sgber#! /bin/sh
2235537Sgber# $OpenLDAP: pkg/ldap/tests/scripts/test008-concurrency,v 1.40.2.3 2008/02/11 23:26:51 kurt Exp $
3235537Sgber## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4235537Sgber##
5235537Sgber## Copyright 1998-2008 The OpenLDAP Foundation.
6235537Sgber## All rights reserved.
7235537Sgber##
8235537Sgber## Redistribution and use in source and binary forms, with or without
9235537Sgber## modification, are permitted only as authorized by the OpenLDAP
10235537Sgber## Public License.
11235537Sgber##
12235537Sgber## A copy of this license is available in the file LICENSE in the
13235537Sgber## top-level directory of the distribution or, alternatively, at
14235537Sgber## <http://www.OpenLDAP.org/license.html>.
15235537Sgber
16235537Sgberecho "running defines.sh"
17235537Sgber. $SRCDIR/scripts/defines.sh
18235537Sgber
19235537Sgbermkdir -p $TESTDIR $DBDIR1
20235537Sgber
21235537Sgberecho "Running slapadd to build slapd database..."
22235537Sgber. $CONFFILTER $BACKEND $MONITORDB < $CONF > $CONF1
23235537Sgber$SLAPADD -f $CONF1 -l $LDIFORDERED -d -1 2> $SLAPADDLOG1
24235537SgberRC=$?
25235537Sgberif test $RC != 0 ; then
26235537Sgber	echo "slapadd failed ($RC)!"
27235537Sgber	exit $RC
28235537Sgberfi
29235537Sgber
30235537Sgberecho "Starting slapd on TCP/IP port $PORT1..."
31235537Sgber$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
32235537SgberPID=$!
33235537Sgberif test $WAIT != 0 ; then
34235537Sgber    echo PID $PID
35235537Sgber    read foo
36235537Sgberfi
37235537SgberKILLPIDS="$PID"
38235537Sgber
39235537Sgbersleep 1
40235537Sgber
41235537Sgberecho "Using ldapsearch to check that slapd is running..."
42235537Sgberfor i in 0 1 2 3 4 5; do
43235537Sgber	$LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
44235537Sgber		'objectclass=*' > /dev/null 2>&1
45235537Sgber	RC=$?
46235537Sgber	if test $RC = 0 ; then
47235537Sgber		break
48235537Sgber	fi
49235537Sgber	echo "Waiting 5 seconds for slapd to start..."
50235537Sgber	sleep 5
51235537Sgberdone
52235537Sgber
53235537Sgberecho "Using tester for concurrent server access..."
54235537Sgbertime $SLAPDTESTER -P "$PROGDIR" -d "$DATADIR" -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD -l 50
55235537Sgber#$SLAPDTESTER -P "$PROGDIR" -d "$DATADIR" -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD -l 50
56235537SgberRC=$?
57235537Sgber
58235537Sgberif test $RC != 0 ; then
59235537Sgber	echo "slapd-tester failed ($RC)!"
60235537Sgber	test $KILLSERVERS != no && kill -HUP $KILLPIDS
61235537Sgber	exit $RC
62235537Sgberfi 
63235537Sgber
64235537Sgberecho "Using ldapsearch to retrieve all the entries..."
65235537Sgber$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
66235537Sgber			'objectClass=*' > $SEARCHOUT 2>&1
67235537SgberRC=$?
68235537Sgber
69235537Sgbertest $KILLSERVERS != no && kill -HUP $KILLPIDS
70235537Sgber
71235537Sgberif test $RC != 0 ; then
72235537Sgber	echo "ldapsearch failed ($RC)!"
73235537Sgber	exit $RC
74235537Sgberfi
75235537Sgber
76235537Sgberecho "Filtering ldapsearch results..."
77235537Sgber. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
78235537Sgberecho "Filtering original ldif used to create database..."
79235537Sgber. $LDIFFILTER < $LDIF > $LDIFFLT
80235537Sgberecho "Comparing filter output..."
81235537Sgber$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
82235537Sgber
83235537Sgberif test $? != 0 ; then
84235537Sgber	echo "comparison failed - database was not created correctly"
85235537Sgber	exit 1
86235537Sgberfi
87235537Sgber
88235537Sgberecho ">>>>> Test succeeded"
89235537Sgber
90235537Sgbertest $KILLSERVERS != no && wait
91235537Sgber
92235537Sgberexit 0
93235537Sgber