1#! /bin/sh 2# $OpenLDAP$ 3## This work is part of OpenLDAP Software <http://www.openldap.org/>. 4## 5## Copyright 1998-2020 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 96PROXYAUTHZCONF=$DATADIR/slapd-proxyauthz.conf 97CACHEMASTERCONF=$DATADIR/slapd-cache-master.conf 98PROXYAUTHZMASTERCONF=$DATADIR/slapd-cache-master-proxyauthz.conf 99R1SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-refresh1.conf 100R2SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-refresh2.conf 101P1SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist1.conf 102P2SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist2.conf 103P3SRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist3.conf 104REFSLAVECONF=$DATADIR/slapd-ref-slave.conf 105SCHEMACONF=$DATADIR/slapd-schema.conf 106GLUECONF=$DATADIR/slapd-glue.conf 107REFINTCONF=$DATADIR/slapd-refint.conf 108RETCODECONF=$DATADIR/slapd-retcode.conf 109UNIQUECONF=$DATADIR/slapd-unique.conf 110LIMITSCONF=$DATADIR/slapd-limits.conf 111DNCONF=$DATADIR/slapd-dn.conf 112EMPTYDNCONF=$DATADIR/slapd-emptydn.conf 113IDASSERTCONF=$DATADIR/slapd-idassert.conf 114LDAPGLUECONF1=$DATADIR/slapd-ldapglue.conf 115LDAPGLUECONF2=$DATADIR/slapd-ldapgluepeople.conf 116LDAPGLUECONF3=$DATADIR/slapd-ldapgluegroups.conf 117RELAYCONF=$DATADIR/slapd-relay.conf 118CHAINCONF1=$DATADIR/slapd-chain1.conf 119CHAINCONF2=$DATADIR/slapd-chain2.conf 120GLUESYNCCONF1=$DATADIR/slapd-glue-syncrepl1.conf 121GLUESYNCCONF2=$DATADIR/slapd-glue-syncrepl2.conf 122SQLCONF=$DATADIR/slapd-sql.conf 123SQLSRMASTERCONF=$DATADIR/slapd-sql-syncrepl-master.conf 124TRANSLUCENTLOCALCONF=$DATADIR/slapd-translucent-local.conf 125TRANSLUCENTREMOTECONF=$DATADIR/slapd-translucent-remote.conf 126METACONF=$DATADIR/slapd-meta.conf 127METACONF1=$DATADIR/slapd-meta-target1.conf 128METACONF2=$DATADIR/slapd-meta-target2.conf 129GLUELDAPCONF=$DATADIR/slapd-glue-ldap.conf 130ACICONF=$DATADIR/slapd-aci.conf 131VALSORTCONF=$DATADIR/slapd-valsort.conf 132DYNLISTCONF=$DATADIR/slapd-dynlist.conf 133RSLAVECONF=$DATADIR/slapd-repl-slave-remote.conf 134PLSRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist-ldap.conf 135PLSRMASTERCONF=$DATADIR/slapd-syncrepl-multiproxy.conf 136DDSCONF=$DATADIR/slapd-dds.conf 137PASSWDCONF=$DATADIR/slapd-passwd.conf 138UNDOCONF=$DATADIR/slapd-config-undo.conf 139NAKEDCONF=$DATADIR/slapd-config-naked.conf 140VALREGEXCONF=$DATADIR/slapd-valregex.conf 141 142DYNAMICCONF=$DATADIR/slapd-dynamic.ldif 143 144# generated files 145CONF1=$TESTDIR/slapd.1.conf 146CONF2=$TESTDIR/slapd.2.conf 147CONF3=$TESTDIR/slapd.3.conf 148CONF4=$TESTDIR/slapd.4.conf 149CONF5=$TESTDIR/slapd.5.conf 150CONF6=$TESTDIR/slapd.6.conf 151ADDCONF=$TESTDIR/slapadd.conf 152CONFLDIF=$TESTDIR/slapd-dynamic.ldif 153 154LOG1=$TESTDIR/slapd.1.log 155LOG2=$TESTDIR/slapd.2.log 156LOG3=$TESTDIR/slapd.3.log 157LOG4=$TESTDIR/slapd.4.log 158LOG5=$TESTDIR/slapd.5.log 159LOG6=$TESTDIR/slapd.6.log 160SLAPADDLOG1=$TESTDIR/slapadd.1.log 161SLURPLOG=$TESTDIR/slurp.log 162 163CONFIGPWF=$TESTDIR/configpw 164 165# args 166TOOLARGS="-x $LDAP_TOOLARGS" 167TOOLPROTO="-P 3" 168 169# cmds 170CONFFILTER=$SRCDIR/scripts/conf.sh 171 172MONITORDATA=$SRCDIR/scripts/monitor_data.sh 173 174SLAPADD="$TESTWD/../servers/slapd/slapd -Ta -d 0 $LDAP_VERBOSE" 175SLAPCAT="$TESTWD/../servers/slapd/slapd -Tc -d 0 $LDAP_VERBOSE" 176SLAPINDEX="$TESTWD/../servers/slapd/slapd -Ti -d 0 $LDAP_VERBOSE" 177SLAPPASSWD="$TESTWD/../servers/slapd/slapd -Tpasswd" 178 179unset DIFF_OPTIONS 180# NOTE: -u/-c is not that portable... 181DIFF="diff -i" 182CMP="diff -i" 183BCMP="diff -iB" 184CMPOUT=/dev/null 185SLAPD="$TESTWD/../servers/slapd/slapd -s0" 186LDAPPASSWD="$CLIENTDIR/ldappasswd $TOOLARGS" 187LDAPSASLSEARCH="$CLIENTDIR/ldapsearch $TOOLPROTO $LDAP_TOOLARGS -LLL" 188LDAPSEARCH="$CLIENTDIR/ldapsearch $TOOLPROTO $TOOLARGS -LLL" 189LDAPRSEARCH="$CLIENTDIR/ldapsearch $TOOLPROTO $TOOLARGS" 190LDAPDELETE="$CLIENTDIR/ldapdelete $TOOLPROTO $TOOLARGS" 191LDAPMODIFY="$CLIENTDIR/ldapmodify $TOOLPROTO $TOOLARGS" 192LDAPADD="$CLIENTDIR/ldapmodify -a $TOOLPROTO $TOOLARGS" 193LDAPMODRDN="$CLIENTDIR/ldapmodrdn $TOOLPROTO $TOOLARGS" 194LDAPWHOAMI="$CLIENTDIR/ldapwhoami $TOOLARGS" 195LDAPCOMPARE="$CLIENTDIR/ldapcompare $TOOLARGS" 196LDAPEXOP="$CLIENTDIR/ldapexop $TOOLARGS" 197SLAPDTESTER=$PROGDIR/slapd-tester 198LDIFFILTER=$PROGDIR/ldif-filter 199SLAPDMTREAD=$PROGDIR/slapd-mtread 200LVL=${SLAPD_DEBUG-0x4105} 201LOCALHOST=localhost 202BASEPORT=${SLAPD_BASEPORT-9010} 203PORT1=`expr $BASEPORT + 1` 204PORT2=`expr $BASEPORT + 2` 205PORT3=`expr $BASEPORT + 3` 206PORT4=`expr $BASEPORT + 4` 207PORT5=`expr $BASEPORT + 5` 208PORT6=`expr $BASEPORT + 6` 209URI1="ldap://${LOCALHOST}:$PORT1/" 210URI2="ldap://${LOCALHOST}:$PORT2/" 211URI3="ldap://${LOCALHOST}:$PORT3/" 212URI4="ldap://${LOCALHOST}:$PORT4/" 213URI5="ldap://${LOCALHOST}:$PORT5/" 214URI6="ldap://${LOCALHOST}:$PORT6/" 215 216# LDIF 217LDIF=$DATADIR/test.ldif 218LDIFADD1=$DATADIR/do_add.1 219LDIFGLUED=$DATADIR/test-glued.ldif 220LDIFORDERED=$DATADIR/test-ordered.ldif 221LDIFORDEREDCP=$DATADIR/test-ordered-cp.ldif 222LDIFORDEREDNOCP=$DATADIR/test-ordered-nocp.ldif 223LDIFBASE=$DATADIR/test-base.ldif 224LDIFPASSWD=$DATADIR/passwd.ldif 225LDIFWHOAMI=$DATADIR/test-whoami.ldif 226LDIFPASSWDOUT=$DATADIR/passwd-out.ldif 227LDIFPPOLICY=$DATADIR/ppolicy.ldif 228LDIFLANG=$DATADIR/test-lang.ldif 229LDIFLANGOUT=$DATADIR/lang-out.ldif 230LDIFREF=$DATADIR/referrals.ldif 231LDIFREFINT=$DATADIR/test-refint.ldif 232LDIFUNIQUE=$DATADIR/test-unique.ldif 233LDIFLIMITS=$DATADIR/test-limits.ldif 234LDIFDN=$DATADIR/test-dn.ldif 235LDIFEMPTYDN1=$DATADIR/test-emptydn1.ldif 236LDIFEMPTYDN2=$DATADIR/test-emptydn2.ldif 237LDIFIDASSERT1=$DATADIR/test-idassert1.ldif 238LDIFIDASSERT2=$DATADIR/test-idassert2.ldif 239LDIFLDAPGLUE1=$DATADIR/test-ldapglue.ldif 240LDIFLDAPGLUE2=$DATADIR/test-ldapgluepeople.ldif 241LDIFLDAPGLUE3=$DATADIR/test-ldapgluegroups.ldif 242LDIFCOMPMATCH=$DATADIR/test-compmatch.ldif 243LDIFCHAIN1=$DATADIR/test-chain1.ldif 244LDIFCHAIN2=$DATADIR/test-chain2.ldif 245LDIFTRANSLUCENTDATA=$DATADIR/test-translucent-data.ldif 246LDIFTRANSLUCENTCONFIG=$DATADIR/test-translucent-config.ldif 247LDIFTRANSLUCENTADD=$DATADIR/test-translucent-add.ldif 248LDIFTRANSLUCENTMERGED=$DATADIR/test-translucent-merged.ldif 249LDIFMETA=$DATADIR/test-meta.ldif 250LDIFVALSORT=$DATADIR/test-valsort.ldif 251SQLADD=$DATADIR/sql-add.ldif 252LDIFUNORDERED=$DATADIR/test-unordered.ldif 253LDIFREORDERED=$DATADIR/test-reordered.ldif 254 255# strings 256MONITOR="" 257REFDN="c=US" 258BASEDN="dc=example,dc=com" 259MANAGERDN="cn=Manager,$BASEDN" 260UPDATEDN="cn=Replica,$BASEDN" 261PASSWD=secret 262BABSDN="cn=Barbara Jensen,ou=Information Technology DivisioN,ou=People,$BASEDN" 263BJORNSDN="cn=Bjorn Jensen,ou=Information Technology DivisioN,ou=People,$BASEDN" 264BADBJORNSDN="cn=Bjorn JensenNotReally,ou=Information Technology DivisioN,ou=People,$BASEDN" 265JAJDN="cn=James A Jones 1,ou=Alumni Association,ou=People,$BASEDN" 266JOHNDDN="cn=John Doe,ou=Information Technology Division,ou=People,$BASEDN" 267MELLIOTDN="cn=Mark Elliot,ou=Alumni Association,ou=People,$BASEDN" 268REFINTDN="cn=Manager,o=refint" 269RETCODEDN="ou=RetCodes,$BASEDN" 270UNIQUEDN="cn=Manager,o=unique" 271EMPTYDNDN="cn=Manager,c=US" 272TRANSLUCENTROOT="o=translucent" 273TRANSLUCENTUSER="ou=users,o=translucent" 274TRANSLUCENTDN="uid=binder,o=translucent" 275TRANSLUCENTPASSWD="bindtest" 276METABASEDN="ou=Meta,$BASEDN" 277METAMANAGERDN="cn=Manager,$METABASEDN" 278VALSORTDN="cn=Manager,o=valsort" 279VALSORTBASEDN="o=valsort" 280MONITORDN="cn=Monitor" 281OPERATIONSMONITORDN="cn=Operations,$MONITORDN" 282CONNECTIONSMONITORDN="cn=Connections,$MONITORDN" 283DATABASESMONITORDN="cn=Databases,$MONITORDN" 284STATISTICSMONITORDN="cn=Statistics,$MONITORDN" 285 286# generated outputs 287SEARCHOUT=$TESTDIR/ldapsearch.out 288SEARCHOUT2=$TESTDIR/ldapsearch2.out 289SEARCHFLT=$TESTDIR/ldapsearch.flt 290SEARCHFLT2=$TESTDIR/ldapsearch2.flt 291LDIFFLT=$TESTDIR/ldif.flt 292LDIFFLT2=$TESTDIR/ldif2.flt 293TESTOUT=$TESTDIR/test.out 294INITOUT=$TESTDIR/init.out 295VALSORTOUT1=$DATADIR/valsort1.out 296VALSORTOUT2=$DATADIR/valsort2.out 297VALSORTOUT3=$DATADIR/valsort3.out 298MONITOROUT1=$DATADIR/monitor1.out 299MONITOROUT2=$DATADIR/monitor2.out 300MONITOROUT3=$DATADIR/monitor3.out 301MONITOROUT4=$DATADIR/monitor4.out 302 303SERVER1OUT=$TESTDIR/server1.out 304SERVER1FLT=$TESTDIR/server1.flt 305SERVER2OUT=$TESTDIR/server2.out 306SERVER2FLT=$TESTDIR/server2.flt 307SERVER3OUT=$TESTDIR/server3.out 308SERVER3FLT=$TESTDIR/server3.flt 309SERVER4OUT=$TESTDIR/server4.out 310SERVER4FLT=$TESTDIR/server4.flt 311SERVER5OUT=$TESTDIR/server5.out 312SERVER5FLT=$TESTDIR/server5.flt 313SERVER6OUT=$TESTDIR/server6.out 314SERVER6FLT=$TESTDIR/server6.flt 315 316MASTEROUT=$SERVER1OUT 317MASTERFLT=$SERVER1FLT 318SLAVEOUT=$SERVER2OUT 319SLAVE2OUT=$SERVER3OUT 320SLAVEFLT=$SERVER2FLT 321SLAVE2FLT=$SERVER3FLT 322 323MTREADOUT=$TESTDIR/mtread.out 324 325# original outputs for cmp 326PROXYCACHEOUT=$DATADIR/proxycache.out 327REFERRALOUT=$DATADIR/referrals.out 328SEARCHOUTMASTER=$DATADIR/search.out.master 329SEARCHOUTX=$DATADIR/search.out.xsearch 330COMPSEARCHOUT=$DATADIR/compsearch.out 331MODIFYOUTMASTER=$DATADIR/modify.out.master 332ADDDELOUTMASTER=$DATADIR/adddel.out.master 333MODRDNOUTMASTER0=$DATADIR/modrdn.out.master.0 334MODRDNOUTMASTER1=$DATADIR/modrdn.out.master.1 335MODRDNOUTMASTER2=$DATADIR/modrdn.out.master.2 336MODRDNOUTMASTER3=$DATADIR/modrdn.out.master.3 337ACLOUTMASTER=$DATADIR/acl.out.master 338REPLOUTMASTER=$DATADIR/repl.out.master 339MODSRCHFILTERS=$DATADIR/modify.search.filters 340CERTIFICATETLS=$DATADIR/certificate.tls 341CERTIFICATEOUT=$DATADIR/certificate.out 342DNOUT=$DATADIR/dn.out 343EMPTYDNOUT1=$DATADIR/emptydn.out.slapadd 344EMPTYDNOUT2=$DATADIR/emptydn.out 345IDASSERTOUT=$DATADIR/idassert.out 346LDAPGLUEOUT=$DATADIR/ldapglue.out 347LDAPGLUEANONYMOUSOUT=$DATADIR/ldapglueanonymous.out 348RELAYOUT=$DATADIR/relay.out 349CHAINOUT=$DATADIR/chain.out 350CHAINREFOUT=$DATADIR/chainref.out 351CHAINMODOUT=$DATADIR/chainmod.out 352GLUESYNCOUT=$DATADIR/gluesync.out 353SQLREAD=$DATADIR/sql-read.out 354SQLWRITE=$DATADIR/sql-write.out 355TRANSLUCENTOUT=$DATADIR/translucent.search.out 356METAOUT=$DATADIR/meta.out 357METACONCURRENCYOUT=$DATADIR/metaconcurrency.out 358MANAGEOUT=$DATADIR/manage.out 359SUBTREERENAMEOUT=$DATADIR/subtree-rename.out 360ACIOUT=$DATADIR/aci.out 361DYNLISTOUT=$DATADIR/dynlist.out 362DDSOUT=$DATADIR/dds.out 363MEMBEROFOUT=$DATADIR/memberof.out 364MEMBEROFREFINTOUT=$DATADIR/memberof-refint.out 365SHTOOL="$SRCDIR/../build/shtool" 366 367