1#! /bin/sh 2# $OpenLDAP$ 3## This work is part of OpenLDAP Software <http://www.openldap.org/>. 4## 5## Copyright 1998-2014 The OpenLDAP Foundation. 6## All rights reserved. 7## 8## Redistribution and use in source and binary forms, with or without 9## modification, are permitted only as authorized by the OpenLDAP 10## Public License. 11## 12## A copy of this license is available in the file LICENSE in the 13## top-level directory of the distribution or, alternatively, at 14## <http://www.OpenLDAP.org/license.html>. 15 16umask 077 17 18TESTWD=`pwd` 19 20# backends 21MONITORDB=${AC_monitor-no} 22BACKLDAP=${AC_ldap-ldapno} 23BACKMETA=${AC_meta-metano} 24BACKRELAY=${AC_relay-relayno} 25BACKSQL=${AC_sql-sqlno} 26 RDBMS=${SLAPD_USE_SQL-rdbmsno} 27 RDBMSWRITE=${SLAPD_USE_SQLWRITE-no} 28 29# overlays 30ACCESSLOG=${AC_accesslog-accesslogno} 31CONSTRAINT=${AC_constraint-constraintno} 32DDS=${AC_dds-ddsno} 33DYNLIST=${AC_dynlist-dynlistno} 34MEMBEROF=${AC_memberof-memberofno} 35PROXYCACHE=${AC_pcache-pcacheno} 36PPOLICY=${AC_ppolicy-ppolicyno} 37REFINT=${AC_refint-refintno} 38RETCODE=${AC_retcode-retcodeno} 39RWM=${AC_rwm-rwmno} 40SYNCPROV=${AC_syncprov-syncprovno} 41TRANSLUCENT=${AC_translucent-translucentno} 42UNIQUE=${AC_unique-uniqueno} 43VALSORT=${AC_valsort-valsortno} 44 45# misc 46WITH_SASL=${AC_WITH_SASL-no} 47USE_SASL=${SLAPD_USE_SASL-no} 48ACI=${AC_ACI_ENABLED-acino} 49THREADS=${AC_THREADS-threadsno} 50SLEEP0=${SLEEP0-1} 51SLEEP1=${SLEEP1-7} 52SLEEP2=${SLEEP2-15} 53 54# dirs 55PROGDIR=./progs 56DATADIR=${USER_DATADIR-./testdata} 57TESTDIR=${USER_TESTDIR-$TESTWD/testrun} 58SCHEMADIR=${USER_SCHEMADIR-./schema} 59case "$SCHEMADIR" in 60.*) ABS_SCHEMADIR="$TESTWD/$SCHEMADIR" ;; 61*) ABS_SCHEMADIR="$SCHEMADIR" ;; 62esac 63 64DBDIR1A=$TESTDIR/db.1.a 65DBDIR1B=$TESTDIR/db.1.b 66DBDIR1C=$TESTDIR/db.1.c 67DBDIR1=$DBDIR1A 68DBDIR2A=$TESTDIR/db.2.a 69DBDIR2B=$TESTDIR/db.2.b 70DBDIR2C=$TESTDIR/db.2.c 71DBDIR2=$DBDIR2A 72DBDIR3=$TESTDIR/db.3.a 73DBDIR4=$TESTDIR/db.4.a 74DBDIR5=$TESTDIR/db.5.a 75DBDIR6=$TESTDIR/db.6.a 76SQLCONCURRENCYDIR=$DATADIR/sql-concurrency 77 78CLIENTDIR=../clients/tools 79#CLIENTDIR=/usr/local/bin 80 81# conf 82CONF=$DATADIR/slapd.conf 83CONFTWO=$DATADIR/slapd2.conf 84CONF2DB=$DATADIR/slapd-2db.conf 85MCONF=$DATADIR/slapd-master.conf 86COMPCONF=$DATADIR/slapd-component.conf 87PWCONF=$DATADIR/slapd-pw.conf 88WHOAMICONF=$DATADIR/slapd-whoami.conf 89ACLCONF=$DATADIR/slapd-acl.conf 90RCONF=$DATADIR/slapd-referrals.conf 91SRMASTERCONF=$DATADIR/slapd-syncrepl-master.conf 92DSRMASTERCONF=$DATADIR/slapd-deltasync-master.conf 93DSRSLAVECONF=$DATADIR/slapd-deltasync-slave.conf 94PPOLICYCONF=$DATADIR/slapd-ppolicy.conf 95PROXYCACHECONF=$DATADIR/slapd-proxycache.conf 96CACHEMASTERCONF=$DATADIR/slapd-cache-master.conf 97R1SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-refresh1.conf 98R2SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-refresh2.conf 99P1SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist1.conf 100P2SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist2.conf 101P3SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist3.conf 102REFSLAVECONF=$DATADIR/slapd-ref-slave.conf 103SCHEMACONF=$DATADIR/slapd-schema.conf 104GLUECONF=$DATADIR/slapd-glue.conf 105REFINTCONF=$DATADIR/slapd-refint.conf 106RETCODECONF=$DATADIR/slapd-retcode.conf 107UNIQUECONF=$DATADIR/slapd-unique.conf 108LIMITSCONF=$DATADIR/slapd-limits.conf 109DNCONF=$DATADIR/slapd-dn.conf 110EMPTYDNCONF=$DATADIR/slapd-emptydn.conf 111IDASSERTCONF=$DATADIR/slapd-idassert.conf 112LDAPGLUECONF1=$DATADIR/slapd-ldapglue.conf 113LDAPGLUECONF2=$DATADIR/slapd-ldapgluepeople.conf 114LDAPGLUECONF3=$DATADIR/slapd-ldapgluegroups.conf 115RELAYCONF=$DATADIR/slapd-relay.conf 116CHAINCONF1=$DATADIR/slapd-chain1.conf 117CHAINCONF2=$DATADIR/slapd-chain2.conf 118GLUESYNCCONF1=$DATADIR/slapd-glue-syncrepl1.conf 119GLUESYNCCONF2=$DATADIR/slapd-glue-syncrepl2.conf 120SQLCONF=$DATADIR/slapd-sql.conf 121SQLSRMASTERCONF=$DATADIR/slapd-sql-syncrepl-master.conf 122TRANSLUCENTLOCALCONF=$DATADIR/slapd-translucent-local.conf 123TRANSLUCENTREMOTECONF=$DATADIR/slapd-translucent-remote.conf 124METACONF=$DATADIR/slapd-meta.conf 125METACONF1=$DATADIR/slapd-meta-target1.conf 126METACONF2=$DATADIR/slapd-meta-target2.conf 127GLUELDAPCONF=$DATADIR/slapd-glue-ldap.conf 128ACICONF=$DATADIR/slapd-aci.conf 129VALSORTCONF=$DATADIR/slapd-valsort.conf 130DYNLISTCONF=$DATADIR/slapd-dynlist.conf 131RSLAVECONF=$DATADIR/slapd-repl-slave-remote.conf 132PLSRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist-ldap.conf 133PLSRMASTERCONF=$DATADIR/slapd-syncrepl-multiproxy.conf 134DDSCONF=$DATADIR/slapd-dds.conf 135PASSWDCONF=$DATADIR/slapd-passwd.conf 136UNDOCONF=$DATADIR/slapd-config-undo.conf 137NAKEDCONF=$DATADIR/slapd-config-naked.conf 138VALREGEXCONF=$DATADIR/slapd-valregex.conf 139 140DYNAMICCONF=$DATADIR/slapd-dynamic.ldif 141 142# generated files 143CONF1=$TESTDIR/slapd.1.conf 144CONF2=$TESTDIR/slapd.2.conf 145CONF3=$TESTDIR/slapd.3.conf 146CONF4=$TESTDIR/slapd.4.conf 147CONF5=$TESTDIR/slapd.5.conf 148CONF6=$TESTDIR/slapd.6.conf 149ADDCONF=$TESTDIR/slapadd.conf 150CONFLDIF=$TESTDIR/slapd-dynamic.ldif 151 152LOG1=$TESTDIR/slapd.1.log 153LOG2=$TESTDIR/slapd.2.log 154LOG3=$TESTDIR/slapd.3.log 155LOG4=$TESTDIR/slapd.4.log 156LOG5=$TESTDIR/slapd.5.log 157LOG6=$TESTDIR/slapd.6.log 158SLAPADDLOG1=$TESTDIR/slapadd.1.log 159SLURPLOG=$TESTDIR/slurp.log 160 161CONFIGPWF=$TESTDIR/configpw 162 163# args 164TOOLARGS="-x $LDAP_TOOLARGS" 165TOOLPROTO="-P 3" 166 167# cmds 168CONFFILTER=$SRCDIR/scripts/conf.sh 169 170MONITORDATA=$SRCDIR/scripts/monitor_data.sh 171 172SLAPADD="$TESTWD/../servers/slapd/slapd -Ta -d 0 $LDAP_VERBOSE" 173SLAPCAT="$TESTWD/../servers/slapd/slapd -Tc -d 0 $LDAP_VERBOSE" 174SLAPINDEX="$TESTWD/../servers/slapd/slapd -Ti -d 0 $LDAP_VERBOSE" 175SLAPPASSWD="$TESTWD/../servers/slapd/slapd -Tpasswd" 176 177unset DIFF_OPTIONS 178# NOTE: -u/-c is not that portable... 179DIFF="diff -i" 180CMP="diff -i" 181BCMP="diff -iB" 182CMPOUT=/dev/null 183SLAPD="$TESTWD/../servers/slapd/slapd -s0" 184LDAPPASSWD="$CLIENTDIR/ldappasswd $TOOLARGS" 185LDAPSASLSEARCH="$CLIENTDIR/ldapsearch $TOOLPROTO $LDAP_TOOLARGS -LLL" 186LDAPSEARCH="$CLIENTDIR/ldapsearch $TOOLPROTO $TOOLARGS -LLL" 187LDAPRSEARCH="$CLIENTDIR/ldapsearch $TOOLPROTO $TOOLARGS" 188LDAPDELETE="$CLIENTDIR/ldapdelete $TOOLPROTO $TOOLARGS" 189LDAPMODIFY="$CLIENTDIR/ldapmodify $TOOLPROTO $TOOLARGS" 190LDAPADD="$CLIENTDIR/ldapmodify -a $TOOLPROTO $TOOLARGS" 191LDAPMODRDN="$CLIENTDIR/ldapmodrdn $TOOLPROTO $TOOLARGS" 192LDAPWHOAMI="$CLIENTDIR/ldapwhoami $TOOLARGS" 193LDAPCOMPARE="$CLIENTDIR/ldapcompare $TOOLARGS" 194LDAPEXOP="$CLIENTDIR/ldapexop $TOOLARGS" 195SLAPDTESTER=$PROGDIR/slapd-tester 196LDIFFILTER=$PROGDIR/ldif-filter 197SLAPDMTREAD=$PROGDIR/slapd-mtread 198LVL=${SLAPD_DEBUG-0x4105} 199LOCALHOST=localhost 200BASEPORT=${SLAPD_BASEPORT-9010} 201PORT1=`expr $BASEPORT + 1` 202PORT2=`expr $BASEPORT + 2` 203PORT3=`expr $BASEPORT + 3` 204PORT4=`expr $BASEPORT + 4` 205PORT5=`expr $BASEPORT + 5` 206PORT6=`expr $BASEPORT + 6` 207URI1="ldap://${LOCALHOST}:$PORT1/" 208URI2="ldap://${LOCALHOST}:$PORT2/" 209URI3="ldap://${LOCALHOST}:$PORT3/" 210URI4="ldap://${LOCALHOST}:$PORT4/" 211URI5="ldap://${LOCALHOST}:$PORT5/" 212URI6="ldap://${LOCALHOST}:$PORT6/" 213 214# LDIF 215LDIF=$DATADIR/test.ldif 216LDIFADD1=$DATADIR/do_add.1 217LDIFGLUED=$DATADIR/test-glued.ldif 218LDIFORDERED=$DATADIR/test-ordered.ldif 219LDIFORDEREDCP=$DATADIR/test-ordered-cp.ldif 220LDIFORDEREDNOCP=$DATADIR/test-ordered-nocp.ldif 221LDIFBASE=$DATADIR/test-base.ldif 222LDIFPASSWD=$DATADIR/passwd.ldif 223LDIFWHOAMI=$DATADIR/test-whoami.ldif 224LDIFPASSWDOUT=$DATADIR/passwd-out.ldif 225LDIFPPOLICY=$DATADIR/ppolicy.ldif 226LDIFLANG=$DATADIR/test-lang.ldif 227LDIFLANGOUT=$DATADIR/lang-out.ldif 228LDIFREF=$DATADIR/referrals.ldif 229LDIFREFINT=$DATADIR/test-refint.ldif 230LDIFUNIQUE=$DATADIR/test-unique.ldif 231LDIFLIMITS=$DATADIR/test-limits.ldif 232LDIFDN=$DATADIR/test-dn.ldif 233LDIFEMPTYDN1=$DATADIR/test-emptydn1.ldif 234LDIFEMPTYDN2=$DATADIR/test-emptydn2.ldif 235LDIFIDASSERT1=$DATADIR/test-idassert1.ldif 236LDIFIDASSERT2=$DATADIR/test-idassert2.ldif 237LDIFLDAPGLUE1=$DATADIR/test-ldapglue.ldif 238LDIFLDAPGLUE2=$DATADIR/test-ldapgluepeople.ldif 239LDIFLDAPGLUE3=$DATADIR/test-ldapgluegroups.ldif 240LDIFCOMPMATCH=$DATADIR/test-compmatch.ldif 241LDIFCHAIN1=$DATADIR/test-chain1.ldif 242LDIFCHAIN2=$DATADIR/test-chain2.ldif 243LDIFTRANSLUCENTDATA=$DATADIR/test-translucent-data.ldif 244LDIFTRANSLUCENTCONFIG=$DATADIR/test-translucent-config.ldif 245LDIFTRANSLUCENTADD=$DATADIR/test-translucent-add.ldif 246LDIFTRANSLUCENTMERGED=$DATADIR/test-translucent-merged.ldif 247LDIFMETA=$DATADIR/test-meta.ldif 248LDIFVALSORT=$DATADIR/test-valsort.ldif 249SQLADD=$DATADIR/sql-add.ldif 250LDIFUNORDERED=$DATADIR/test-unordered.ldif 251LDIFREORDERED=$DATADIR/test-reordered.ldif 252 253# strings 254MONITOR="" 255REFDN="c=US" 256BASEDN="dc=example,dc=com" 257MANAGERDN="cn=Manager,$BASEDN" 258UPDATEDN="cn=Replica,$BASEDN" 259PASSWD=secret 260BABSDN="cn=Barbara Jensen,ou=Information Technology DivisioN,ou=People,$BASEDN" 261BJORNSDN="cn=Bjorn Jensen,ou=Information Technology DivisioN,ou=People,$BASEDN" 262JAJDN="cn=James A Jones 1,ou=Alumni Association,ou=People,$BASEDN" 263JOHNDDN="cn=John Doe,ou=Information Technology Division,ou=People,$BASEDN" 264MELLIOTDN="cn=Mark Elliot,ou=Alumni Association,ou=People,$BASEDN" 265REFINTDN="cn=Manager,o=refint" 266RETCODEDN="ou=RetCodes,$BASEDN" 267UNIQUEDN="cn=Manager,o=unique" 268EMPTYDNDN="cn=Manager,c=US" 269TRANSLUCENTROOT="o=translucent" 270TRANSLUCENTUSER="ou=users,o=translucent" 271TRANSLUCENTDN="uid=binder,o=translucent" 272TRANSLUCENTPASSWD="bindtest" 273METABASEDN="ou=Meta,$BASEDN" 274METAMANAGERDN="cn=Manager,$METABASEDN" 275VALSORTDN="cn=Manager,o=valsort" 276VALSORTBASEDN="o=valsort" 277MONITORDN="cn=Monitor" 278OPERATIONSMONITORDN="cn=Operations,$MONITORDN" 279CONNECTIONSMONITORDN="cn=Connections,$MONITORDN" 280DATABASESMONITORDN="cn=Databases,$MONITORDN" 281STATISTICSMONITORDN="cn=Statistics,$MONITORDN" 282 283# generated outputs 284SEARCHOUT=$TESTDIR/ldapsearch.out 285SEARCHOUT2=$TESTDIR/ldapsearch2.out 286SEARCHFLT=$TESTDIR/ldapsearch.flt 287SEARCHFLT2=$TESTDIR/ldapsearch2.flt 288LDIFFLT=$TESTDIR/ldif.flt 289TESTOUT=$TESTDIR/test.out 290INITOUT=$TESTDIR/init.out 291VALSORTOUT1=$DATADIR/valsort1.out 292VALSORTOUT2=$DATADIR/valsort2.out 293VALSORTOUT3=$DATADIR/valsort3.out 294MONITOROUT1=$DATADIR/monitor1.out 295MONITOROUT2=$DATADIR/monitor2.out 296MONITOROUT3=$DATADIR/monitor3.out 297MONITOROUT4=$DATADIR/monitor4.out 298 299SERVER1OUT=$TESTDIR/server1.out 300SERVER1FLT=$TESTDIR/server1.flt 301SERVER2OUT=$TESTDIR/server2.out 302SERVER2FLT=$TESTDIR/server2.flt 303SERVER3OUT=$TESTDIR/server3.out 304SERVER3FLT=$TESTDIR/server3.flt 305SERVER4OUT=$TESTDIR/server4.out 306SERVER4FLT=$TESTDIR/server4.flt 307SERVER5OUT=$TESTDIR/server5.out 308SERVER5FLT=$TESTDIR/server5.flt 309SERVER6OUT=$TESTDIR/server6.out 310SERVER6FLT=$TESTDIR/server6.flt 311 312MASTEROUT=$SERVER1OUT 313MASTERFLT=$SERVER1FLT 314SLAVEOUT=$SERVER2OUT 315SLAVE2OUT=$SERVER3OUT 316SLAVEFLT=$SERVER2FLT 317SLAVE2FLT=$SERVER3FLT 318 319MTREADOUT=$TESTDIR/mtread.out 320 321# original outputs for cmp 322PROXYCACHEOUT=$DATADIR/proxycache.out 323REFERRALOUT=$DATADIR/referrals.out 324SEARCHOUTMASTER=$DATADIR/search.out.master 325SEARCHOUTX=$DATADIR/search.out.xsearch 326COMPSEARCHOUT=$DATADIR/compsearch.out 327MODIFYOUTMASTER=$DATADIR/modify.out.master 328ADDDELOUTMASTER=$DATADIR/adddel.out.master 329MODRDNOUTMASTER0=$DATADIR/modrdn.out.master.0 330MODRDNOUTMASTER1=$DATADIR/modrdn.out.master.1 331MODRDNOUTMASTER2=$DATADIR/modrdn.out.master.2 332MODRDNOUTMASTER3=$DATADIR/modrdn.out.master.3 333ACLOUTMASTER=$DATADIR/acl.out.master 334REPLOUTMASTER=$DATADIR/repl.out.master 335MODSRCHFILTERS=$DATADIR/modify.search.filters 336CERTIFICATETLS=$DATADIR/certificate.tls 337CERTIFICATEOUT=$DATADIR/certificate.out 338DNOUT=$DATADIR/dn.out 339EMPTYDNOUT1=$DATADIR/emptydn.out.slapadd 340EMPTYDNOUT2=$DATADIR/emptydn.out 341IDASSERTOUT=$DATADIR/idassert.out 342LDAPGLUEOUT=$DATADIR/ldapglue.out 343LDAPGLUEANONYMOUSOUT=$DATADIR/ldapglueanonymous.out 344RELAYOUT=$DATADIR/relay.out 345CHAINOUT=$DATADIR/chain.out 346CHAINREFOUT=$DATADIR/chainref.out 347CHAINMODOUT=$DATADIR/chainmod.out 348GLUESYNCOUT=$DATADIR/gluesync.out 349SQLREAD=$DATADIR/sql-read.out 350SQLWRITE=$DATADIR/sql-write.out 351TRANSLUCENTOUT=$DATADIR/translucent.search.out 352METAOUT=$DATADIR/meta.out 353METACONCURRENCYOUT=$DATADIR/metaconcurrency.out 354MANAGEOUT=$DATADIR/manage.out 355SUBTREERENAMEOUT=$DATADIR/subtree-rename.out 356ACIOUT=$DATADIR/aci.out 357DYNLISTOUT=$DATADIR/dynlist.out 358DDSOUT=$DATADIR/dds.out 359MEMBEROFOUT=$DATADIR/memberof.out 360MEMBEROFREFINTOUT=$DATADIR/memberof-refint.out 361SHTOOL="$SRCDIR/../build/shtool" 362 363