X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=tests%2Fscripts%2Ftest036-meta-concurrency;h=26063ed901f00164fe027c245348b23ecb97dfe2;hb=d2da9c1a7d1480eb6b8ae8c2a8e78392f44f4289;hp=e29b8e0972dba53fc8bdda97f0985809296f719d;hpb=e2a172067f1273abf2a247708c27c770825e52da;p=openldap
diff --git a/tests/scripts/test036-meta-concurrency b/tests/scripts/test036-meta-concurrency
index e29b8e0972..26063ed901 100755
--- a/tests/scripts/test036-meta-concurrency
+++ b/tests/scripts/test036-meta-concurrency
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software .
##
-## Copyright 1998-2005 The OpenLDAP Foundation.
+## Copyright 1998-2012 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -23,16 +23,17 @@ if test $BACKMETA = metano ; then
exit 0
fi
-# to be removed some time...
-if test "x$TEST_META" = "xno" ; then
- echo '### Test disabled by "TEST_META=no"; unset TEST_META to re-enable'
- echo ""
+if test $BACKLDAP = ldapno ; then
+ echo "ldap backend not available, test skipped"
exit 0
-else
- echo "### this test is experimental; in case of problems,"
- echo "### set \"TEST_META=no\" to disable, and report thru"
- echo "### the Issue Tracking System "
- echo ""
+fi
+
+if test x$TESTLOOPS = x ; then
+ TESTLOOPS=50
+fi
+
+if test x$TESTCHILDREN = x ; then
+ TESTCHILDREN=20
fi
rm -rf $TESTDIR
@@ -56,7 +57,7 @@ if test "$BACKEND" = "bdb" || test "$BACKEND" = "hdb" ; then
fi
echo "Starting slapd on TCP/IP port $PORT1..."
-. $CONFFILTER $BACKEND $MONITORDB < $CONF > $CONF1
+. $CONFFILTER $BACKEND $MONITORDB < $METACONF1 > $CONF1
$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
PID=$!
if test $WAIT != 0 ; then
@@ -184,9 +185,24 @@ for f in $TESTDIR/$DATADIR/do_read.* ; do
echo "cn=Somewhere,ou=Meta,$METABASEDN" >> $f
done
+# add a bind that resolves to a referral
+for f in $TESTDIR/$DATADIR/do_bind.* ; do
+ echo "cn=Foo,ou=Meta,$METABASEDN" >> $f
+ echo "bar" >> $f
+ echo "" >> $f
+ echo "" >> $f
+done
+
+# fix test data to include back-monitor, if available
+# NOTE: copies do_* files from $TESTDIR/$DATADIR to $TESTDIR
+$MONITORDATA "$MONITORDB" "$TESTDIR/$DATADIR" "$TESTDIR"
+
+BINDDN="cn=Manager,o=Local"
+PASSWD="secret"
echo "Using tester for concurrent server access..."
-$SLAPDTESTER -P "$PROGDIR" -d "$TESTDIR/$DATADIR" -h $LOCALHOST -p $PORT3 \
- -D "cn=Manager,$METABASEDN" -w $PASSWD -l 50 -r 20 -F
+$SLAPDTESTER -P "$PROGDIR" -d "$TESTDIR" -h $LOCALHOST -p $PORT3 \
+ -D "$BINDDN" -w $PASSWD -l $TESTLOOPS -j $TESTCHILDREN \
+ -r 20 -i '!REFERRAL' -i '*INVALID_CREDENTIALS' -SS
RC=$?
if test $RC != 0 ; then
@@ -208,9 +224,9 @@ if test $RC != 0 ; then
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
+$LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
@@ -220,4 +236,7 @@ if test $? != 0 ; then
fi
echo ">>>>> Test succeeded"
+
+test $KILLSERVERS != no && wait
+
exit 0