X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=tests%2Fscripts%2Ftest036-meta-concurrency;h=13fa6e9e3c04040af8f1772ae7b1bfc75b0d98f4;hb=58c0bf5ad12415ac4fde91d4ae39ac883eb28106;hp=1aeaa205a3eaa95b04a9998b27b84f8697f22d71;hpb=572ca2db94b0e7af95e7ac16a91cb1ea3b3d136a;p=openldap
diff --git a/tests/scripts/test036-meta-concurrency b/tests/scripts/test036-meta-concurrency
index 1aeaa205a3..13fa6e9e3c 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-2011 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,8 +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
+$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
@@ -207,16 +224,19 @@ 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
if test $? != 0 ; then
- echo "comparison failed - meta search/modification didn't succeed"
+ echo "comparison failed - slapd-meta search/modification didn't succeed"
exit 1
fi
echo ">>>>> Test succeeded"
+
+test $KILLSERVERS != no && wait
+
exit 0