#!/bin/bash echo "running defines.sh" . $SRCDIR/scripts/defines.sh if test $CONSTRAINT = constraintno; then echo "Constraint overlay not available, test skipped" exit 0 fi CONSTRAINTDIR="$DATADIR/constraint" ROOTLDIF="$CONSTRAINTDIR/root.ldif" USERLDIF="$CONSTRAINTDIR/user.ldif" RESULTOUT="$CONSTRAINTDIR/constraint.out" SCRIPTOUT="$TESTDIR/constraint.out" USERDN="cn=John Doe,ou=users,$BASEDN" CONFDIR=$TESTDIR/slapd.d mkdir -p $TESTDIR $CONFDIR $DBDIR1 $SLAPPASSWD -g -n >$CONFIGPWF cat > $TESTDIR/config.ldif <> $TESTDIR/config.ldif <> $TESTDIR/config.ldif <> $TESTDIR/config.ldif <> $TESTDIR/config.ldif <> $TESTDIR/config.ldif < $LOG1 2>&1 & PID=$! if test $WAIT != 0 ; then echo PID $PID read foo fi sleep 1 echo "Adding basic structure..." $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD -f $ROOTLDIF &>/dev/null RC=$? if test $RC != 0 ; then echo "ldapadd failed ($RC)!" test $KILLSERVERS != no && kill -HUP $PID exit $RC fi $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD -f $USERLDIF &>/dev/null RC=$? if test $RC != 0 ; then echo "ldapadd failed ($RC)!" test $KILLSERVERS != no && kill -HUP $PID exit $RC fi echo "Running constraint tests..." for ldif in $SRCDIR/data/constraint/{*ok*,*fail*}.ldif; do ### reload $LDAPDELETE -D "$MANAGERDN" -H $URI1 -w $PASSWD "$USERDN" &>/dev/null RC=$? if test $RC != 0 ; then echo "ldapdelete failed ($RC)!" test $KILLSERVERS != no && kill -HUP $PID exit $RC fi $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD -f $USERLDIF &>/dev/null RC=$? if test $RC != 0 ; then echo "ldapadd failed ($RC)!" test $KILLSERVERS != no && kill -HUP $PID exit $RC fi ### info echo -n " [$ldif]: " ### modify $LDAPMODIFY -H $URI1 -x -D "$MANAGERDN" -f $ldif -w $PASSWD &>/dev/null RC=$? if test $RC == 0 ; then echo "OK" | tee -a $SCRIPTOUT elif test $RC == 19 ; then echo "FAIL" | tee -a $SCRIPTOUT else echo "UNEXPECTED ($RC)" fi done echo "Comparing output..." $DIFF $SCRIPTOUT $RESULTOUT > $CMPOUT RC=$? if test $RC != 0 ; then echo "Comparison failed" test $KILLSERVERS != no && kill -HUP $PID exit $RC fi test $KILLSERVERS != no && kill -HUP $PID echo ">>>>> Test succeeded" test $KILLSERVERS != no && wait exit 0