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