3 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
5 ## Copyright 1998-2017 The OpenLDAP Foundation.
6 ## All rights reserved.
8 ## Redistribution and use in source and binary forms, with or without
9 ## modification, are permitted only as authorized by the OpenLDAP
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>.
16 echo "running defines.sh"
17 . $SRCDIR/scripts/defines.sh
19 if test $SYNCPROV = syncprovno; then
20 echo "Syncrepl provider overlay not available, test skipped"
23 if test $ACCESSLOG = accesslogno; then
24 echo "Accesslog overlay not available, test skipped"
27 if test $BACKEND = ldif ; then
28 echo "$BACKEND backend unsuitable, test skipped"
39 ITSDIR=$DATADIR/regressions/its$ITS
42 while [ $n -le $MMR ]; do
44 mkdir -p ${XDIR}$n $DBDIR.1 $DBDIR.2
50 echo "Starting slapd on TCP/IP port $PORT1..."
51 . $CONFFILTER $BACKEND $MONITORDB < $ITSDIR/slapd.conf > $CONF1
52 $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
54 if test $WAIT != 0 ; then
62 echo "Using ldapsearch to check that slapd is running..."
63 for i in 0 1 2 3 4 5; do
64 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
65 'objectclass=*' > /dev/null 2>&1
67 if test $RC = 0 ; then
70 echo "Waiting 5 seconds for slapd to start..."
74 if test $RC != 0 ; then
75 echo "ldapsearch failed ($RC)!"
76 test $KILLSERVERS != no && kill -HUP $KILLPIDS
80 echo "Populating database on first provider..."
81 $LDAPADD -D $MANAGERDN -H $URI1 -w $PASSWD << EOMODS >> $TESTOUT 2>&1
83 objectClass: organization
89 objectClass: organizationalUnit
93 objectClass: organizationalUnit
96 dn: cn=Roger Rabbit,ou=People,$BASEDN
97 objectClass: inetOrgPerson
101 dn: cn=Baby Herman,ou=People,$BASEDN
102 objectClass: inetOrgPerson
106 dn: cn=Jessica_Rabbit,ou=People,$BASEDN
107 objectClass: inetOrgPerson
111 dn: cn=Bugs_Bunny,ou=People,$BASEDN
112 objectClass: inetOrgPerson
116 dn: cn=Daffy_Duck,ou=People,$BASEDN
117 objectClass: inetOrgPerson
121 dn: cn=Elmer_Fudd,ou=People,$BASEDN
122 objectClass: inetOrgPerson
126 dn: cn=Cartoonia,ou=Groups,$BASEDN
127 objectClass: groupOfNames
129 member: cn=Roger Rabbit,ou=People,$BASEDN
130 member: cn=Baby Herman,ou=People,$BASEDN
135 if test $RC != 0 ; then
136 echo "ldapadd failed ($RC)!"
137 test $KILLSERVERS != no && kill -HUP $KILLPIDS
141 echo "Stopping slapd and reworking configuration for MMR..."
143 test $KILLSERVERS != no && kill -HUP $KILLPIDS
147 while [ $n -le $MMR ]; do
148 MYURI=`eval echo '$URI'$n`
149 MYLOG=`eval echo '$LOG'$n`
150 MYCONF=`eval echo '$CONF'$n`
151 echo "Starting provider slapd on TCP/IP URI $MYURI"
152 . $CONFFILTER $BACKEND $MONITORDB < $ITSDIR/slapd.conf.mmr > $CONF
153 sed -e "s/MMR/$n/g" $CONF > $MYCONF
155 while [ $j -le $MMR ]; do
156 MMCURI=`eval echo '$URI'$j`
157 sed -e "s|MMC${j}|${MMCURI}|" $MYCONF > $CONF
161 if [ -f $CONF ]; then
164 $SLAPD -f $MYCONF -h $MYURI -d $LVL $TIMING > $MYLOG 2>&1 &
166 if test $WAIT != 0 ; then
170 KILLPIDS="$PID $KILLPIDS"
173 echo "Using ldapsearch to check that provider slapd is running..."
174 for i in 0 1 2 3 4 5; do
175 $LDAPSEARCH -s base -b "" -H $MYURI \
176 'objectclass=*' > /dev/null 2>&1
178 if test $RC = 0 ; then
181 echo "Waiting 5 seconds for slapd to start..."
185 if test $RC != 0 ; then
186 echo "ldapsearch failed ($RC)!"
187 test $KILLSERVERS != no && kill -HUP $KILLPIDS
194 while [ $n -le $MMR ]; do
195 echo "Modifying dn: cn=Elmer_Fudd,ou=People,dc=example,dc=com on master $n"
196 MYURI=`eval echo '$URI'$n`
197 $LDAPMODIFY -v -D "$MANAGERDN" -H $MYURI -w $PASSWD > \
198 $TESTOUT 2>&1 << EOMODS
200 dn: cn=Elmer_Fudd,ou=People,$BASEDN
209 echo ">>>>> Test succeeded"
211 test $KILLSERVERS != no && wait