From d41497d59623205a1ca788728b626f0d5ba6f40f Mon Sep 17 00:00:00 2001 From: Jan Synacek Date: Thu, 2 Aug 2012 14:57:39 +0200 Subject: [PATCH] ITS#7344 Add initial testsuite for slapo-constraint --- tests/data/constraint/constraint.out | 25 +++++ tests/data/constraint/root.ldif | 5 + tests/data/constraint/t_fail_01.ldif | 6 ++ tests/data/constraint/t_fail_02.ldif | 8 ++ tests/data/constraint/t_fail_03.ldif | 8 ++ tests/data/constraint/t_fail_04.ldif | 10 ++ tests/data/constraint/t_fail_05.ldif | 13 +++ tests/data/constraint/t_fail_06.ldif | 7 ++ tests/data/constraint/t_fail_07.ldif | 15 +++ tests/data/constraint/t_fail_08.ldif | 12 +++ tests/data/constraint/t_fail_09.ldif | 10 ++ tests/data/constraint/t_fail_10.ldif | 4 + tests/data/constraint/t_fail_11.ldif | 7 ++ tests/data/constraint/t_ok_01.ldif | 3 + tests/data/constraint/t_ok_02.ldif | 5 + tests/data/constraint/t_ok_03.ldif | 6 ++ tests/data/constraint/t_ok_04.ldif | 3 + tests/data/constraint/t_ok_05.ldif | 5 + tests/data/constraint/t_ok_06.ldif | 7 ++ tests/data/constraint/t_ok_07.ldif | 8 ++ tests/data/constraint/t_ok_08.ldif | 12 +++ tests/data/constraint/t_ok_09.ldif | 9 ++ tests/data/constraint/t_ok_10.ldif | 24 +++++ tests/data/constraint/t_ok_11.ldif | 32 +++++++ tests/data/constraint/t_ok_12.ldif | 11 +++ tests/data/constraint/t_ok_13.ldif | 18 ++++ tests/data/constraint/t_ok_14.ldif | 8 ++ tests/data/constraint/user.ldif | 8 ++ tests/scripts/test064-constraint | 137 +++++++++++++++++++++++++++ 29 files changed, 426 insertions(+) create mode 100644 tests/data/constraint/constraint.out create mode 100644 tests/data/constraint/root.ldif create mode 100644 tests/data/constraint/t_fail_01.ldif create mode 100644 tests/data/constraint/t_fail_02.ldif create mode 100644 tests/data/constraint/t_fail_03.ldif create mode 100644 tests/data/constraint/t_fail_04.ldif create mode 100644 tests/data/constraint/t_fail_05.ldif create mode 100644 tests/data/constraint/t_fail_06.ldif create mode 100644 tests/data/constraint/t_fail_07.ldif create mode 100644 tests/data/constraint/t_fail_08.ldif create mode 100644 tests/data/constraint/t_fail_09.ldif create mode 100644 tests/data/constraint/t_fail_10.ldif create mode 100644 tests/data/constraint/t_fail_11.ldif create mode 100644 tests/data/constraint/t_ok_01.ldif create mode 100644 tests/data/constraint/t_ok_02.ldif create mode 100644 tests/data/constraint/t_ok_03.ldif create mode 100644 tests/data/constraint/t_ok_04.ldif create mode 100644 tests/data/constraint/t_ok_05.ldif create mode 100644 tests/data/constraint/t_ok_06.ldif create mode 100644 tests/data/constraint/t_ok_07.ldif create mode 100644 tests/data/constraint/t_ok_08.ldif create mode 100644 tests/data/constraint/t_ok_09.ldif create mode 100644 tests/data/constraint/t_ok_10.ldif create mode 100644 tests/data/constraint/t_ok_11.ldif create mode 100644 tests/data/constraint/t_ok_12.ldif create mode 100644 tests/data/constraint/t_ok_13.ldif create mode 100644 tests/data/constraint/t_ok_14.ldif create mode 100644 tests/data/constraint/user.ldif create mode 100755 tests/scripts/test064-constraint diff --git a/tests/data/constraint/constraint.out b/tests/data/constraint/constraint.out new file mode 100644 index 0000000000..94c8d35e1e --- /dev/null +++ b/tests/data/constraint/constraint.out @@ -0,0 +1,25 @@ +OK +OK +OK +OK +OK +OK +OK +OK +OK +OK +OK +OK +OK +OK +FAIL +FAIL +FAIL +FAIL +FAIL +FAIL +FAIL +FAIL +FAIL +FAIL +FAIL diff --git a/tests/data/constraint/root.ldif b/tests/data/constraint/root.ldif new file mode 100644 index 0000000000..3e099fcb12 --- /dev/null +++ b/tests/data/constraint/root.ldif @@ -0,0 +1,5 @@ +dn: dc=example,dc=com +objectclass: dcObject +objectclass: organization +dc: example +o: My Domain corp. diff --git a/tests/data/constraint/t_fail_01.ldif b/tests/data/constraint/t_fail_01.ldif new file mode 100644 index 0000000000..c797271eaf --- /dev/null +++ b/tests/data/constraint/t_fail_01.ldif @@ -0,0 +1,6 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +mail: d@example.com diff --git a/tests/data/constraint/t_fail_02.ldif b/tests/data/constraint/t_fail_02.ldif new file mode 100644 index 0000000000..e3f32af096 --- /dev/null +++ b/tests/data/constraint/t_fail_02.ldif @@ -0,0 +1,8 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +mail: d@example.com +mail: e@example.com +mail: f@example.com diff --git a/tests/data/constraint/t_fail_03.ldif b/tests/data/constraint/t_fail_03.ldif new file mode 100644 index 0000000000..cf6ac23232 --- /dev/null +++ b/tests/data/constraint/t_fail_03.ldif @@ -0,0 +1,8 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +- +add: mail +mail: d@example.com diff --git a/tests/data/constraint/t_fail_04.ldif b/tests/data/constraint/t_fail_04.ldif new file mode 100644 index 0000000000..8dd10c68aa --- /dev/null +++ b/tests/data/constraint/t_fail_04.ldif @@ -0,0 +1,10 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +- +add: mail +mail: c@example.com +- +add: mail +mail: d@example.com diff --git a/tests/data/constraint/t_fail_05.ldif b/tests/data/constraint/t_fail_05.ldif new file mode 100644 index 0000000000..9f11082469 --- /dev/null +++ b/tests/data/constraint/t_fail_05.ldif @@ -0,0 +1,13 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +- +add: mail +mail: c@example.com +- +add: mail +mail: d@example.com +- +add: mail +mail: e@example.com diff --git a/tests/data/constraint/t_fail_06.ldif b/tests/data/constraint/t_fail_06.ldif new file mode 100644 index 0000000000..1871c92b0e --- /dev/null +++ b/tests/data/constraint/t_fail_06.ldif @@ -0,0 +1,7 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +replace: mail +mail: a@example.com +mail: b@example.com +mail: c@example.com +mail: d@example.com diff --git a/tests/data/constraint/t_fail_07.ldif b/tests/data/constraint/t_fail_07.ldif new file mode 100644 index 0000000000..1041f98820 --- /dev/null +++ b/tests/data/constraint/t_fail_07.ldif @@ -0,0 +1,15 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +replace: mail +mail: a@example.com +mail: b@example.com +mail: c@example.com +mail: d@example.com +- +delete: mail +- +add: mail +mail: w@example.com +mail: x@example.com +mail: y@example.com +mail: z@example.com diff --git a/tests/data/constraint/t_fail_08.ldif b/tests/data/constraint/t_fail_08.ldif new file mode 100644 index 0000000000..4e5b420a55 --- /dev/null +++ b/tests/data/constraint/t_fail_08.ldif @@ -0,0 +1,12 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +mail: d@example.com +- +delete: mail +mail: d@example.com +- +add: mail +mail: f@example.com diff --git a/tests/data/constraint/t_fail_09.ldif b/tests/data/constraint/t_fail_09.ldif new file mode 100644 index 0000000000..dd8d747c1d --- /dev/null +++ b/tests/data/constraint/t_fail_09.ldif @@ -0,0 +1,10 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +mail: d@example.com +mail: e@example.com +- +delete: mail +mail: original@example.com diff --git a/tests/data/constraint/t_fail_10.ldif b/tests/data/constraint/t_fail_10.ldif new file mode 100644 index 0000000000..043380f944 --- /dev/null +++ b/tests/data/constraint/t_fail_10.ldif @@ -0,0 +1,4 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: example@not-allowed.com diff --git a/tests/data/constraint/t_fail_11.ldif b/tests/data/constraint/t_fail_11.ldif new file mode 100644 index 0000000000..8bb03fa6a3 --- /dev/null +++ b/tests/data/constraint/t_fail_11.ldif @@ -0,0 +1,7 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +delete: mail +mail: original@example.com +- +add: mail +mail: a@fail.com diff --git a/tests/data/constraint/t_ok_01.ldif b/tests/data/constraint/t_ok_01.ldif new file mode 100644 index 0000000000..87b6a42900 --- /dev/null +++ b/tests/data/constraint/t_ok_01.ldif @@ -0,0 +1,3 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +delete: mail diff --git a/tests/data/constraint/t_ok_02.ldif b/tests/data/constraint/t_ok_02.ldif new file mode 100644 index 0000000000..a76df6baa3 --- /dev/null +++ b/tests/data/constraint/t_ok_02.ldif @@ -0,0 +1,5 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +replace: mail +mail: a@example.com +mail: b@example.com diff --git a/tests/data/constraint/t_ok_03.ldif b/tests/data/constraint/t_ok_03.ldif new file mode 100644 index 0000000000..19242b470b --- /dev/null +++ b/tests/data/constraint/t_ok_03.ldif @@ -0,0 +1,6 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +replace: mail +mail: a@example.com +mail: b@example.com +mail: c@example.com diff --git a/tests/data/constraint/t_ok_04.ldif b/tests/data/constraint/t_ok_04.ldif new file mode 100644 index 0000000000..87b6a42900 --- /dev/null +++ b/tests/data/constraint/t_ok_04.ldif @@ -0,0 +1,3 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +delete: mail diff --git a/tests/data/constraint/t_ok_05.ldif b/tests/data/constraint/t_ok_05.ldif new file mode 100644 index 0000000000..3d260a38ba --- /dev/null +++ b/tests/data/constraint/t_ok_05.ldif @@ -0,0 +1,5 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: a@example.com +mail: b@example.com diff --git a/tests/data/constraint/t_ok_06.ldif b/tests/data/constraint/t_ok_06.ldif new file mode 100644 index 0000000000..bac6113adf --- /dev/null +++ b/tests/data/constraint/t_ok_06.ldif @@ -0,0 +1,7 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +delete: mail +- +add: mail +mail: b@example.com +mail: c@example.com diff --git a/tests/data/constraint/t_ok_07.ldif b/tests/data/constraint/t_ok_07.ldif new file mode 100644 index 0000000000..870eff8455 --- /dev/null +++ b/tests/data/constraint/t_ok_07.ldif @@ -0,0 +1,8 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +delete: mail +- +add: mail +mail: a@example.com +mail: b@example.com +mail: c@example.com diff --git a/tests/data/constraint/t_ok_08.ldif b/tests/data/constraint/t_ok_08.ldif new file mode 100644 index 0000000000..5593b08d05 --- /dev/null +++ b/tests/data/constraint/t_ok_08.ldif @@ -0,0 +1,12 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +- +delete: mail +- +add: mail +mail: x@example.com +mail: y@example.com +mail: z@example.com diff --git a/tests/data/constraint/t_ok_09.ldif b/tests/data/constraint/t_ok_09.ldif new file mode 100644 index 0000000000..75dd710f24 --- /dev/null +++ b/tests/data/constraint/t_ok_09.ldif @@ -0,0 +1,9 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +replace: mail +mail: a@example.com +mail: b@example.com +mail: c@example.com +mail: d@example.com +- +delete: mail diff --git a/tests/data/constraint/t_ok_10.ldif b/tests/data/constraint/t_ok_10.ldif new file mode 100644 index 0000000000..8412264526 --- /dev/null +++ b/tests/data/constraint/t_ok_10.ldif @@ -0,0 +1,24 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +- +delete: mail +- +add: mail +mail: x@example.com +mail: y@example.com +mail: z@example.com +mail: u@example.com +mail: m@example.com +- +replace: mail +mail: i@example.com +mail: j@example.com +- +add: mail +mail: k@example.com +- +replace: description +description: d1 diff --git a/tests/data/constraint/t_ok_11.ldif b/tests/data/constraint/t_ok_11.ldif new file mode 100644 index 0000000000..a5a5783eb0 --- /dev/null +++ b/tests/data/constraint/t_ok_11.ldif @@ -0,0 +1,32 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +- +delete: mail +- +add: mail +mail: x@example.com +mail: y@example.com +mail: z@example.com +mail: u@example.com +mail: m@example.com +- +replace: mail +mail: i@example.com +mail: j@example.com +- +add: mail +mail: k@example.com +mail: hh@example.com +- +delete: mail +- +add: mail +mail: k@example.com +mail: hh@example.com +mail: hj@example.com +- +replace: description +description: d1 diff --git a/tests/data/constraint/t_ok_12.ldif b/tests/data/constraint/t_ok_12.ldif new file mode 100644 index 0000000000..e683bb3263 --- /dev/null +++ b/tests/data/constraint/t_ok_12.ldif @@ -0,0 +1,11 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +mail: d@example.com +mail: e@example.com +- +delete: mail +mail: original@example.com +mail: e@example.com diff --git a/tests/data/constraint/t_ok_13.ldif b/tests/data/constraint/t_ok_13.ldif new file mode 100644 index 0000000000..19ccbb8735 --- /dev/null +++ b/tests/data/constraint/t_ok_13.ldif @@ -0,0 +1,18 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +add: mail +mail: b@example.com +mail: c@example.com +mail: d@example.com +mail: e@example.com +- +delete: mail +- +add: mail +mail: b@example.com +mail: c@example.com +mail: d@example.com +mail: e@example.com +- +delete: mail +mail: e@example.com diff --git a/tests/data/constraint/t_ok_14.ldif b/tests/data/constraint/t_ok_14.ldif new file mode 100644 index 0000000000..dd00fccdb2 --- /dev/null +++ b/tests/data/constraint/t_ok_14.ldif @@ -0,0 +1,8 @@ +dn: cn=user,dc=example,dc=com +changetype: modify +delete: description +description: desc1 +- +add: description +description: desc1-mod + diff --git a/tests/data/constraint/user.ldif b/tests/data/constraint/user.ldif new file mode 100644 index 0000000000..b8a06de99e --- /dev/null +++ b/tests/data/constraint/user.ldif @@ -0,0 +1,8 @@ +dn: cn=user,dc=example,dc=com +objectclass: inetOrgPerson +objectclass: organizationalPerson +cn: John +sn: Doe +mail: original@example.com +description: desc1 +description: desc2 diff --git a/tests/scripts/test064-constraint b/tests/scripts/test064-constraint new file mode 100755 index 0000000000..4a69b3fc7b --- /dev/null +++ b/tests/scripts/test064-constraint @@ -0,0 +1,137 @@ +#!/bin/bash + +echo "running defines.sh" +. $SRCDIR/scripts/defines.sh + +CONSTRAINTDIR="$DATADIR/constraint" +ROOTLDIF="$CONSTRAINTDIR/root.ldif" +USERLDIF="$CONSTRAINTDIR/user.ldif" +RESULTOUT="$CONSTRAINTDIR/constraint.out" +SCRIPTOUT="$TESTDIR/constraint.out" +USERDN="cn=user,$BASEDN" + +CONFDIR=$TESTDIR/slapd.d +mkdir -p $TESTDIR $CONFDIR $DBDIR1 + +$SLAPPASSWD -g -n >$CONFIGPWF + +$SLAPADD -F $CONFDIR -n 0 < $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 -y $CONFIGPWF -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 -y $CONFIGPWF -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 -y $CONFIGPWF $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 -y $CONFIGPWF -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 -y $CONFIGPWF &>/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 -- 2.39.5