# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2009 The OpenLDAP Foundation.
+## Copyright 1998-2012 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
exit 0
fi
-if test $BACKEND = null; then
- echo "$BACKEND backend does not support cn=config, test skipped"
- exit 0
-fi
-
PRODDIR=$TESTDIR/prod
PRO2DIR=$TESTDIR/pro2
CONSDIR=$TESTDIR/cons
;;
esac
-echo "Initializing producer configurations..."
+echo "Initializing provider configurations..."
$SLAPADD -F $CFPROD -n 0 <<EOF
dn: cn=config
objectClass: olcGlobal
EOF
-echo "Initializing producer2 configurations..."
+echo "Initializing provider2 configurations..."
$SLAPADD -F $CFPRO2 -n 0 <<EOF
dn: cn=config
objectClass: olcGlobal
olcRootPW:< file://$CONFIGPWF
EOF
-echo "Starting producer slapd on TCP/IP port $PORT1..."
+echo "Starting provider slapd on TCP/IP port $PORT1..."
cd $PRODDIR
$SLAPD -F slapd.d -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
PID=$!
KILLPIDS="$KILLPIDS $PID"
cd $TESTWD
sleep 1
-echo "Using ldapsearch to check that producer slapd is running..."
+echo "Using ldapsearch to check that provider slapd is running..."
for i in 0 1 2 3 4 5; do
$LDAPSEARCH -s base -b "" -H $URI1 \
'objectclass=*' > /dev/null 2>&1
exit $RC
fi
-echo "Starting producer2 slapd on TCP/IP port $PORT2..."
+echo "Starting provider2 slapd on TCP/IP port $PORT2..."
cd $PRO2DIR
$SLAPD -F slapd.d -h $URI2 -d $LVL $TIMING > $LOG2 2>&1 &
PID=$!
KILLPIDS="$KILLPIDS $PID"
cd $TESTWD
sleep 1
-echo "Using ldapsearch to check that producer slapd is running..."
+echo "Using ldapsearch to check that provider slapd is running..."
for i in 0 1 2 3 4 5; do
$LDAPSEARCH -s base -b "" -H $URI2 \
'objectclass=*' > /dev/null 2>&1
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
-olcModulePath: ../../../servers/slapd/back-$BACKEND
+olcModulePath: $TESTWD/../servers/slapd/back-$BACKEND
olcModuleLoad: back_$BACKEND.la
EOF
RC=$?
fi
done
-echo "Adding databases on producer..."
+echo "Adding databases on provider..."
if [ "$SYNCPROV" = syncprovmod ]; then
$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
-olcModulePath: ../../../servers/slapd/overlays
+olcModulePath: $TESTWD/../servers/slapd/overlays
olcModuleLoad: syncprov.la
EOF
fi
fi
+nullExclude="" nullOK=""
+test $BACKEND = null && nullExclude="# " nullOK="OK"
+
$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $PRODDIR/db
+${nullExclude}olcDbDirectory: $PRODDIR/db
olcSuffix: $BASEDN
olcRootDN: $MANAGERDN
olcRootPW: $PASSWD
EOF
RC=$?
if test $RC != 0 ; then
- echo "ldapadd failed for producer database config1 ($RC)!"
+ echo "ldapadd failed for provider database config1 ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $PRODDIR/ou1
+${nullExclude}olcDbDirectory: $PRODDIR/ou1
olcSubordinate: TRUE
olcSuffix: ou=ou1,$BASEDN
olcRootDN: $MANAGERDN
EOF
RC=$?
if test $RC != 0 ; then
- echo "ldapadd failed for producer database config ($RC)!"
+ echo "ldapadd failed for provider database config ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-echo "Adding databases on producer2..."
+echo "Adding databases on provider2..."
if [ "$SYNCPROV" = syncprovmod ]; then
$LDAPADD -D cn=config -H $URI2 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
-olcModulePath: ../../../servers/slapd/overlays
+olcModulePath: $TESTWD/../servers/slapd/overlays
olcModuleLoad: syncprov.la
EOF
$LDAPADD -D cn=config -H $URI2 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $PRO2DIR/db
+${nullExclude}olcDbDirectory: $PRO2DIR/db
olcSuffix: $BASEDN
olcRootDN: $MANAGERDN
olcRootPW: $PASSWD
EOF
RC=$?
if test $RC != 0 ; then
- echo "ldapadd failed for producer database config ($RC)!"
+ echo "ldapadd failed for provider database config ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
$LDAPADD -D cn=config -H $URI3 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $CONSDIR/db
+${nullExclude}olcDbDirectory: $CONSDIR/db
olcSuffix: $BASEDN
olcRootDN: $MANAGERDN
exit $RC
fi
-echo "Populating producer..."
+echo "Populating provider..."
$LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD <<EOF >> $TESTOUT 2>&1
dn: dc=example,dc=com
objectClass: top
EOF
RC=$?
if test $RC != 0 ; then
- echo "ldapadd failed to populate producer entry ($RC)!"
+ echo "ldapadd failed to populate provider entry ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-echo "Populating producer2..."
+echo "Populating provider2..."
$LDAPADD -D "$MANAGERDN" -H $URI2 -w $PASSWD <<EOF >> $TESTOUT 2>&1
dn: dc=example,dc=com
objectClass: top
EOF
RC=$?
if test $RC != 0 ; then
- echo "ldapadd failed to populate producer entry ($RC)!"
+ echo "ldapadd failed to populate provider entry ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-echo "Adding syncrepl on producer..."
+echo "Adding syncrepl on provider..."
$LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
changetype: modify
RESULT=`$LDAPSEARCH -H $URI3 \
-s base -b "ou=ou1,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
exit $RC
fi
-echo "Using ldapmodify to modify producer2..."
+echo "Using ldapmodify to modify provider2..."
$LDAPADD -D "$MANAGERDN" -H $URI2 -w $PASSWD <<EOF >> $TESTOUT 2>&1
dn: ou=ou1,dc=example,dc=com
changetype: modify
RESULT=`$LDAPSEARCH -H $URI3 \
-s base -b "ou=ou1,$BASEDN" \
'(description=Modify1)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
exit $RC
fi
+case $BACKEND in bdb | hdb)
db_stat=
for path in `echo "$PATH" | sed -e 's/:/ /g'`; do
if test -f "$path/db_stat" && \
echo "Glue lock bug not found :-)"
lock_bug=0
fi
+esac
-echo "Using ldapmodify to modify glue suffix on producer..."
+echo "Using ldapmodify to modify glue suffix on provider..."
$LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD <<EOF >> $TESTOUT 2>&1
dn: dc=example,dc=com
changetype: modify