]> git.sur5r.net Git - openldap/blob - tests/scripts/test004-modify
Unexpand spaces for tabs in prior commit before merging to rel_eng_1_1.
[openldap] / tests / scripts / test004-modify
1 #!/bin/sh
2
3 . scripts/defines.sh
4
5 echo "Cleaning up in $DBDIR..."
6
7 rm -f $DBDIR/[!C]*
8
9 echo "Running ldif2ldbm to build slapd database..."
10 $LDIF2LDBM -f $CONF -i $LDIF -e ../servers/slapd/tools
11 RC=$?
12 if [ $RC != 0 ]; then
13         echo "ldif2ldbm failed!"
14         exit $RC
15 fi
16
17 echo "Starting slapd on TCP/IP port $PORT..."
18 $SLAPD -f $CONF -p $PORT -d 1 > $MASTERLOG 2>&1 &
19 PID=$!
20
21 echo "Testing slapd modify operations..."
22 for i in 0 1 2 3 4 5; do
23         $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \
24                 'cn=Manager' > /dev/null 2>&1
25         RC=$?
26         if [ $RC = 1 ]; then
27                 echo "Waiting 5 seconds for slapd to start..."
28                 sleep 5
29         fi
30 done
31
32 if [ $RC != 0 ]; then
33         echo "ldapsearch failed!"
34         kill -HUP $PID
35         exit $RC
36 fi
37
38 cat /dev/null > $TESTOUT
39
40 echo "Testing modify, add, and delete..."
41 $LDAPMODIFY -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \
42         /dev/null 2>&1 << EOMODS
43 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
44 changetype: modify
45 add: drink
46 drink: Orange Juice
47
48 dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
49 changetype: modify
50 replace: multilinedescription
51 multilinedescription: The replaced multiLineDescription $ Blah Woof.
52 -
53 replace: drink
54 drink: Iced Tea
55 drink: Mad Dog 20/20
56
57 dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US
58 delete: member
59 member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
60 member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
61 -
62 add: member
63 member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Michigan, c=US
64 member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
65
66 dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US
67 changetype: modify
68 delete: member
69
70 dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
71 changetype: add
72 objectclass: top
73 objectclass: person
74 objectclass: organizationalPerson
75 objectclass: newPilotPerson
76 objectclass: umichPerson
77 cn: Gern Jensen
78 title: Chief Investigator, ITD
79 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
80 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US
81 uid: gjensen
82 krbname: gjensen@umich.edu
83 nobatchupdates: TRUE
84 onvacation: FALSE
85 drink: Coffee
86 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
87 multilinedescription: Very odd
88 facsimiletelephonenumber: +1 313 555 7557
89 telephonenumber: +1 313 555 8343
90 mail: gjensen@mailgw.umich.edu
91 homephone: +1 313 555 8844
92
93 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
94 changetype: delete
95
96 EOMODS
97
98 RC=$?
99 if [ $RC != 0 ]; then
100         echo "ldapmodify failed!"
101         kill -HUP $PID
102         exit $RC
103 fi
104
105 echo "Using ldapsearch to retrieve all the entries..."
106 $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \
107             'objectClass=*' | egrep -iv '^createtimestamp:|^modifytimestamp:' \
108             > $SEARCHOUT 2>&1
109 RC=$?
110 kill -HUP $PID
111 if [ $RC != 0 ]; then
112         echo "ldapsearch failed!"
113         exit $RC
114 fi
115
116 echo "Comparing database to reference file"
117 cmp $SEARCHOUT $MODIFYOUTMASTER
118 if [ $? != 0 ]; then
119         echo "comparison failed - modify operations did not complete correctly"
120         exit 1
121 fi
122
123 echo ">>>>> Test succeeded"
124
125
126 exit 0