From: Ondrej Kuznik Date: Thu, 19 Apr 2012 13:46:49 +0000 (+0200) Subject: ITS#7256 Introduce slapmodify test X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=841396e2bd2f7c994852a8e2bf979c3a0ebc9fd9;p=openldap ITS#7256 Introduce slapmodify test --- diff --git a/tests/data/test-modify.ldif b/tests/data/test-modify.ldif new file mode 100644 index 0000000000..2bd98be2d5 --- /dev/null +++ b/tests/data/test-modify.ldif @@ -0,0 +1,110 @@ +version: 1 + +# LEADING COMMENT AND WHITE SPACE + +dn: cn=James A Jones 1,ou=Alumni Association,ou=People,dc=example,dc=com +# EMBEDDED COMMENT +changetype: modify +add: drink +drink: Pils +- +add: drink +drink: Orange Juice +- +delete: drink +drink: Pils +- +delete: sn +sn: Jones +- +add: sn +sn: Jones + +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com +changetype: modify +# EMBEDDED COMMENT + CONTINUED +replace: description +description: The replaced multiLineDescription $ Blah Woof. +- +replace: drink +drink: Iced Tea +drink: Mad Dog 20/20 + +dn: cn=ITD Staff,ou=Groups,dc=example,dc=com +changetype: modify +delete: uniquemember +uniquemember: cn=James A Jones 2,ou=Information Technology Division, + ou=People,dc=example,dc=com +uniquemember: cn=Bjorn Jensen,ou=Information Technology Division, + ou=People,dc=example,dc=com +- +add: uniquemember +uniquemember: cn=Dorothy Stevens,ou=Alumni Association, + ou=People,dc=example,dc=com +uniquemember: cn=James A Jones 1,ou=Alumni Association, + ou=People,dc=example,dc=com +- +add: objectClass +objectClass: OpenLDAPdisplayableObject +objectClass: pkiUser +objectClass: userSecurityInformation +- +delete: objectClass +objectClass: userSecurityInformation +objectClass: pkiUser +objectClass: OpenLDAPdisplayableObject + +dn: cn=All Staff,ou=Groups,dc=example,dc=com +changetype: modify +delete: member +- +add: member +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,dc=example,dc=com +- +delete: description +- +add: objectClass +objectClass: OpenLDAPdisplayableObject +objectClass: pkiUser +objectClass: userSecurityInformation +- +delete: objectClass +objectClass: OpenLDAPdisplayableObject +objectClass: pkiUser +objectClass: userSecurityInformation + +dn: cn=Gern Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com +changetype: add +objectclass: testPerson +cn: Gern Jensen +sn: Jensen +uid: gjensen +title: Chief Investigator, ITD +postaladdress: ITD $ 535 W. William St $ Anytown, MI 48103 +seealso: cn=All Staff,ou=Groups,dc=example,dc=com +drink: Coffee +homepostaladdress: 844 Brown St. Apt. 4 $ Anytown, MI 48104 +description: Very odd +facsimiletelephonenumber: +1 313 555 7557 +telephonenumber: +1 313 555 8343 +mail: gjensen@mailgw.example.com +homephone: +1 313 555 8844 +testTime: 20050304001801.234Z + +dn: cn=James A Jones 2,ou=Information Technology Division,ou=People,dc=example,dc=com +changetype: delete +# TRAILING COMMENT AND WHITE SPACE + +dn: ou=People,dc=example,dc=com +changetype: modify +increment: uidNumber +uidNumber: 1 +- +increment: gidNumber +gidNumber: -1 + +dn: dc=example,dc=com +changetype: modify +# EMPTY SEQUENCE OF CHANGE + diff --git a/tests/scripts/defines.sh b/tests/scripts/defines.sh index 66854a3883..8d15a3ab76 100755 --- a/tests/scripts/defines.sh +++ b/tests/scripts/defines.sh @@ -172,6 +172,7 @@ MONITORDATA=$SRCDIR/scripts/monitor_data.sh SLAPADD="$TESTWD/../servers/slapd/slapd -Ta -d 0 $LDAP_VERBOSE" SLAPCAT="$TESTWD/../servers/slapd/slapd -Tc -d 0 $LDAP_VERBOSE" SLAPINDEX="$TESTWD/../servers/slapd/slapd -Ti -d 0 $LDAP_VERBOSE" +SLAPMODIFY="$TESTWD/../servers/slapd/slapd -Tm -d 0 $LDAP_VERBOSE" SLAPPASSWD="$TESTWD/../servers/slapd/slapd -Tpasswd" unset DIFF_OPTIONS @@ -249,6 +250,7 @@ LDIFVALSORT=$DATADIR/test-valsort.ldif SQLADD=$DATADIR/sql-add.ldif LDIFUNORDERED=$DATADIR/test-unordered.ldif LDIFREORDERED=$DATADIR/test-reordered.ldif +LDIFMODIFY=$DATADIR/test-modify.ldif # strings MONITOR="" diff --git a/tests/scripts/test004-modify b/tests/scripts/test004-modify index fe6bf767f2..66a144f146 100755 --- a/tests/scripts/test004-modify +++ b/tests/scripts/test004-modify @@ -58,119 +58,7 @@ fi echo "Testing modify, add, and delete..." $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \ - $TESTOUT 2>&1 << EOMODS -version: 1 - -# LEADING COMMENT AND WHITE SPACE - -dn: cn=James A Jones 1,ou=Alumni Association,ou=People,dc=example,dc=com -# EMBEDDED COMMENT -changetype: modify -add: drink -drink: Pils -- -add: drink -drink: Orange Juice -- -delete: drink -drink: Pils -- -delete: sn -sn: Jones -- -add: sn -sn: Jones - -dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com -changetype: modify -# EMBEDDED COMMENT - CONTINUED -replace: description -description: The replaced multiLineDescription $ Blah Woof. -- -replace: drink -drink: Iced Tea -drink: Mad Dog 20/20 - -dn: cn=ITD Staff,ou=Groups,dc=example,dc=com -changetype: modify -delete: uniquemember -uniquemember: cn=James A Jones 2,ou=Information Technology Division, - ou=People,dc=example,dc=com -uniquemember: cn=Bjorn Jensen,ou=Information Technology Division, - ou=People,dc=example,dc=com -- -add: uniquemember -uniquemember: cn=Dorothy Stevens,ou=Alumni Association, - ou=People,dc=example,dc=com -uniquemember: cn=James A Jones 1,ou=Alumni Association, - ou=People,dc=example,dc=com -- -add: objectClass -objectClass: OpenLDAPdisplayableObject -objectClass: pkiUser -objectClass: userSecurityInformation -- -delete: objectClass -objectClass: userSecurityInformation -objectClass: pkiUser -objectClass: OpenLDAPdisplayableObject - -dn: cn=All Staff,ou=Groups,dc=example,dc=com -changetype: modify -delete: member -- -add: member -member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,dc=example,dc=com -- -delete: description -- -add: objectClass -objectClass: OpenLDAPdisplayableObject -objectClass: pkiUser -objectClass: userSecurityInformation -- -delete: objectClass -objectClass: OpenLDAPdisplayableObject -objectClass: pkiUser -objectClass: userSecurityInformation - -dn: cn=Gern Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com -changetype: add -objectclass: testPerson -cn: Gern Jensen -sn: Jensen -uid: gjensen -title: Chief Investigator, ITD -postaladdress: ITD $ 535 W. William St $ Anytown, MI 48103 -seealso: cn=All Staff,ou=Groups,dc=example,dc=com -drink: Coffee -homepostaladdress: 844 Brown St. Apt. 4 $ Anytown, MI 48104 -description: Very odd -facsimiletelephonenumber: +1 313 555 7557 -telephonenumber: +1 313 555 8343 -mail: gjensen@mailgw.example.com -homephone: +1 313 555 8844 -testTime: 20050304001801.234Z - -dn: cn=James A Jones 2,ou=Information Technology Division,ou=People,dc=example,dc=com -changetype: delete -# TRAILING COMMENT AND WHITE SPACE - -dn: ou=People,dc=example,dc=com -changetype: modify -increment: uidNumber -uidNumber: 1 -- -increment: gidNumber -gidNumber: -1 - -dn: dc=example,dc=com -changetype: modify -# EMPTY SEQUENCE OF CHANGE - -EOMODS - + $TESTOUT -f $LDIFMODIFY RC=$? if test $RC != 0 ; then echo "ldapmodify failed ($RC)!" diff --git a/tests/scripts/test007-slapmodify b/tests/scripts/test007-slapmodify new file mode 100755 index 0000000000..e4b33eecbc --- /dev/null +++ b/tests/scripts/test007-slapmodify @@ -0,0 +1,90 @@ +#! /bin/sh +# $OpenLDAP$ +## This work is part of OpenLDAP Software . +## +## Copyright 1998-2012 The OpenLDAP Foundation. +## All rights reserved. +## +## Redistribution and use in source and binary forms, with or without +## modification, are permitted only as authorized by the OpenLDAP +## Public License. +## +## A copy of this license is available in the file LICENSE in the +## top-level directory of the distribution or, alternatively, at +## . + +echo "running defines.sh" +. $SRCDIR/scripts/defines.sh + +mkdir -p $TESTDIR $DBDIR1 + +echo "Running slapadd to build slapd database..." +. $CONFFILTER $BACKEND $MONITORDB < $CONF > $ADDCONF +$SLAPADD -f $ADDCONF -l $LDIFORDERED +RC=$? +if test $RC != 0 ; then + echo "slapadd failed ($RC)!" + exit $RC +fi + +echo "Testing modify, add, and delete using slapmodify..." +$SLAPMODIFY -f $ADDCONF -l $LDIFMODIFY > $TESTOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "slapmodify failed ($RC)!" + exit $RC +fi + +echo "Starting slapd on TCP/IP port $PORT1..." +. $CONFFILTER $BACKEND $MONITORDB < $CONF > $CONF1 +$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 & +PID=$! +if test $WAIT != 0 ; then + echo PID $PID + read foo +fi +KILLPIDS="$PID" + +sleep 1 + +echo "Using ldapsearch to retrieve all the entries..." +for i in 0 1 2 3 4 5; do + $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 > $SEARCHOUT 2>&1 + RC=$? + if test $RC = 0 ; then + break + fi + echo "Waiting 5 seconds for slapd to start..." + sleep 5 +done + +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +LDIF=$MODIFYOUTMASTER + +echo "Filtering ldapsearch results..." +$LDIFFILTER < $SEARCHOUT > $SEARCHFLT +echo "Filtering original ldif used to create database..." +$LDIFFILTER < $LDIF > $LDIFFLT +echo "Comparing filter output..." +$CMP $SEARCHFLT $LDIFFLT > $CMPOUT + +if test $? != 0 ; then + echo "modify operations did not complete correctly" + echo $SEARCHFLT $LDIFFLT + $DIFF $SEARCHFLT $LDIFFLT + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 +fi + +test $KILLSERVERS != no && kill -HUP $KILLPIDS + +echo ">>>>> Test succeeded" + +test $KILLSERVERS != no && wait + +exit 0