]> git.sur5r.net Git - openldap/blob - tests/scripts/test004-modify
Merge in all devel changes since 2.0-alpha2.
[openldap] / tests / scripts / test004-modify
1 #! /bin/sh
2 # $OpenLDAP$
3
4 if test $# -eq 0 ; then
5         SRCDIR="."
6 else
7         SRCDIR=$1; shift
8 fi
9 if test $# -eq 1 ; then
10         BACKEND=$1; shift
11 fi
12
13 echo "running defines.sh $SRCDIR $BACKEND"
14 . $SRCDIR/scripts/defines.sh
15
16 echo "Cleaning up in $DBDIR..."
17
18 rm -f $DBDIR/[!C]*
19
20 echo "Running slapadd to build slapd database..."
21 $LDIF2LDBM -f $CONF -l $LDIF
22 RC=$?
23 if test $RC != 0 ; then
24         echo "slapadd failed!"
25         exit $RC
26 fi
27
28 echo "Starting slapd on TCP/IP port $PORT..."
29 $SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
30 PID=$!
31
32 echo "Testing slapd modify operations..."
33 for i in 0 1 2 3 4 5; do
34         $LDAPSEARCH -s base -b "$MONITOR" -h localhost -p $PORT \
35                 'objectclass=*' > /dev/null 2>&1
36         RC=$?
37         if test $RC = 1 ; then
38                 echo "Waiting 5 seconds for slapd to start..."
39                 sleep 5
40         fi
41 done
42
43 if test $RC != 0 ; then
44         echo "ldapsearch failed!"
45         kill -HUP $PID
46         exit $RC
47 fi
48
49 echo "Testing modify, add, and delete..."
50 $LDAPMODIFY -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \
51         $TESTOUT 2>&1 << EOMODS
52 version: 1
53
54 # LEADING COMMENT AND WHITE SPACE
55
56 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
57 # EMBEDDED COMMENT
58 changetype: modify
59 add: drink
60 drink: Orange Juice
61
62 dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
63 changetype: modify
64 # EMBEDDED COMMENT
65  CONTINUED
66 replace: multilinedescription
67 multilinedescription: The replaced multiLineDescription $ Blah Woof.
68 -
69 replace: drink
70 drink: Iced Tea
71 drink: Mad Dog 20/20
72
73 dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US
74 delete: member
75 member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
76 member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
77 -
78 add: member
79 member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Michigan, c=US
80 member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
81
82 dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US
83 changetype: modify
84 delete: member
85
86 dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
87 changetype: add
88 objectclass: top
89 objectclass: person
90 objectclass: organizationalPerson
91 objectclass: newPilotPerson
92 objectclass: umichPerson
93 cn: Gern Jensen
94 title: Chief Investigator, ITD
95 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
96 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US
97 uid: gjensen
98 krbname: gjensen@umich.edu
99 nobatchupdates: TRUE
100 onvacation: FALSE
101 drink: Coffee
102 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
103 multilinedescription: Very odd
104 facsimiletelephonenumber: +1 313 555 7557
105 telephonenumber: +1 313 555 8343
106 mail: gjensen@mailgw.umich.edu
107 homephone: +1 313 555 8844
108
109 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
110 changetype: delete
111 # TRAILING COMMENT AND WHITE SPACE
112
113 EOMODS
114
115 RC=$?
116 if test $RC != 0 ; then
117         echo "ldapmodify failed!"
118         kill -HUP $PID
119         exit $RC
120 fi
121
122 echo "Using ldapsearch to retrieve all the entries..."
123 $LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $PORT \
124             'objectClass=*' > $SEARCHOUT 2>&1
125 RC=$?
126 kill -HUP $PID
127 if test $RC != 0 ; then
128         echo "ldapsearch failed!"
129         exit $RC
130 fi
131
132 LDIF=$MODIFYOUTMASTER
133
134 echo "Filtering ldapsearch results..."
135 . $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT
136 echo "Filtering original ldif used to create database..."
137 . $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT
138 echo "Comparing filter output..."
139 cmp $SEARCHFLT $LDIFFLT
140
141 if test $? != 0 ; then
142         echo "comparison failed - modify operations did not complete correctly"
143         exit 1
144 fi
145
146 echo ">>>>> Test succeeded"
147
148 exit 0