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 192de962bdSlukemif test $BACKSQL = "sqlno" ; then 202de962bdSlukem echo "SQL backend not available, test skipped" 212de962bdSlukem exit 0 222de962bdSlukemfi 232de962bdSlukem 242de962bdSlukemif test $RDBMS = "rdbmsno" ; then 252de962bdSlukem echo "SQL test not requested, test skipped" 262de962bdSlukem exit 0 272de962bdSlukemfi 282de962bdSlukem 294e6df137Slukemif test "x$TESTLOOPS" = "x" ; then 304e6df137Slukem TESTLOOPS=5 312de962bdSlukemfi 322de962bdSlukem 332de962bdSlukemif test "x$CHILDREN" = "x" ; then 342de962bdSlukem CHILDREN="-j 4" 352de962bdSlukemelse 362de962bdSlukem CHILDREN="-j $CHILDREN" 372de962bdSlukemfi 382de962bdSlukem 392de962bdSlukemSQLDATADIR=$TESTDIR/sql-concurrency 402de962bdSlukemmkdir -p $TESTDIR $SQLDATADIR 412de962bdSlukem 422de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..." 43*e670fd5cSchristos. $CONFFILTER $BACKEND < $SQLCONF > $CONF1 44*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 452de962bdSlukemPID=$! 462de962bdSlukemif test $WAIT != 0 ; then 472de962bdSlukem echo PID $PID 482de962bdSlukem read foo 492de962bdSlukemfi 502de962bdSlukemKILLPIDS="$PID" 512de962bdSlukem 522de962bdSlukemecho "Testing SQL backend concurrency..." 532de962bdSlukemfor i in 0 1 2 3 4 5; do 54*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 552de962bdSlukem 'objectclass=*' > /dev/null 2>&1 562de962bdSlukem RC=$? 572de962bdSlukem if test $RC = 0 ; then 582de962bdSlukem break 592de962bdSlukem fi 602de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 612de962bdSlukem sleep 5 622de962bdSlukemdone 632de962bdSlukem 642de962bdSlukemif test $RC != 0 ; then 652de962bdSlukem echo "ldapsearch failed ($RC)!" 662de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 672de962bdSlukem exit $RC 682de962bdSlukemfi 692de962bdSlukem 702de962bdSlukemecho "Using ldapsearch to retrieve all the entries..." 71*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 722de962bdSlukem '(objectClass=*)' > $SEARCHOUT 2>&1 732de962bdSlukemRC=$? 742de962bdSlukem 752de962bdSlukemif test $RC != 0 ; then 762de962bdSlukem echo "ldapsearch failed ($RC)!" 772de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 782de962bdSlukem exit $RC 792de962bdSlukemfi 802de962bdSlukem 812de962bdSlukemecho "Filtering original ldif used to create database..." 82ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $LDIFFLT 832de962bdSlukem 842de962bdSlukemif test "${RDBMSWRITE}" != "yes"; then 852de962bdSlukem echo "write test disabled for ${RDBMS}; set SLAPD_USE_SQLWRITE=yes to enable" 862de962bdSlukem cp $SQLCONCURRENCYDIR/do_read* $SQLCONCURRENCYDIR/do_search* \ 872de962bdSlukem $SQLCONCURRENCYDIR/do_bind* $SQLDATADIR 882de962bdSlukemelse 892de962bdSlukem case ${RDBMS} in 902de962bdSlukem # list here the RDBMSes whose mapping allows writes 912de962bdSlukem pgsql|ibmdb2) 922de962bdSlukem cp $SQLCONCURRENCYDIR/do_* $SQLDATADIR 932de962bdSlukem ;; 942de962bdSlukem *) 952de962bdSlukem echo "write is not supported for ${RDBMS}; performing read-only concurrency test" 962de962bdSlukem cp $SQLCONCURRENCYDIR/do_read* $SQLCONCURRENCYDIR/do_search* \ 972de962bdSlukem $SQLCONCURRENCYDIR/do_bind* $SQLDATADIR 982de962bdSlukem ;; 992de962bdSlukem esac 1002de962bdSlukemfi 1012de962bdSlukem 1022de962bdSlukemecho "Using tester for concurrent server access..." 1032de962bdSlukem$SLAPDTESTER -P "$PROGDIR" -d "$SQLDATADIR" \ 104*e670fd5cSchristos -H $URI1 -D "$MANAGERDN" -w $PASSWD \ 1054e6df137Slukem -l $TESTLOOPS $CHILDREN -FF 1062de962bdSlukemRC=$? 1072de962bdSlukem 1082de962bdSlukemif test $RC != 0 ; then 1092de962bdSlukem echo "slapd-tester failed ($RC)!" 1102de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1112de962bdSlukem exit $RC 1122de962bdSlukemfi 1132de962bdSlukem 1142de962bdSlukemecho "Using ldapsearch to retrieve all the entries..." 115*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 1162de962bdSlukem '(objectClass=*)' > $SEARCHOUT 2>&1 1172de962bdSlukemRC=$? 1182de962bdSlukem 1192de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS 1202de962bdSlukem 1212de962bdSlukemif test $RC != 0 ; then 1222de962bdSlukem echo "ldapsearch failed ($RC)!" 1232de962bdSlukem exit $RC 1242de962bdSlukemfi 1252de962bdSlukem 1262de962bdSlukemecho "Filtering ldapsearch results..." 127ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 1282de962bdSlukemecho "Comparing filter output..." 1292de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 1302de962bdSlukem 1312de962bdSlukemif test $? != 0 ; then 1322de962bdSlukem echo "comparison failed - database was not created correctly" 1332de962bdSlukem exit 1 1342de962bdSlukemfi 1352de962bdSlukem 1362de962bdSlukemecho ">>>>> Test succeeded" 1372de962bdSlukemexit 0 1382de962bdSlukem 139