]> git.sur5r.net Git - openldap/blob - tests/scripts/test016-subref
ITS#2401 support tests for dynamically loaded backends
[openldap] / tests / scripts / test016-subref
1 #! /bin/sh
2 # $OpenLDAP$
3
4 RCODE=10
5 SRCDIR="."
6 if test $# -ge 1 ; then
7         SRCDIR=$1; shift
8 fi
9
10 . $SRCDIR/scripts/args.sh
11
12 echo "running defines.sh"
13 . $SRCDIR/scripts/defines.sh
14
15 echo "Cleaning up in $DBDIR..."
16
17 rm -f $DBDIR/[!C]*
18
19 echo "Running slapadd to build slapd database..."
20 . $CONFFILTER $BACKEND $MONITORDB < $RCONF > $DBCONF
21 $SLAPADD -f $DBCONF -l $LDIFREF
22 RC=$?
23 if test $RC != 0 ; then
24         echo "slapadd failed ($RC)!"
25         exit $RC
26 fi
27
28 echo "Starting slapd on TCP/IP port $PORT..."
29 $SLAPD -f $DBCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
30 PID=$!
31 if test $WAIT != 0 ; then
32     echo PID $PID
33     read foo
34 fi
35
36 echo "Testing slapd searching..."
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 = 0 ; then
42                 break
43         fi
44         echo "Waiting 5 seconds for slapd to start..."
45         sleep 5
46 done
47
48 if test $RC != 0 ; then
49         echo "ldapsearch failed ($RC)!"
50         kill -HUP $PID
51         exit $RC
52 fi
53
54 cat /dev/null > $SEARCHOUT
55
56 echo "Testing ManageDsaIT searching at $REFDN..."
57 $LDAPRSEARCH -S "" -MM -b "$REFDN" -h $LOCALHOST -p $PORT \
58         '(objectClass=referral)' '*' ref >> $SEARCHOUT 2>&1
59 RC=$?
60 if test $RC != 0 ; then
61         echo "ldapsearch failed ($RC)!"
62         kill -HUP $PID
63         exit $RC
64 fi
65
66 echo "Testing ManageDsaIT searching at referral object..."
67 $LDAPRSEARCH -S "" -MM -b "o=abc,$REFDN" -h $LOCALHOST -p $PORT \
68         '(objectClass=referral)' '*' ref >> $SEARCHOUT 2>&1
69 RC=$?
70 if test $RC != 0 ; then
71         echo "ldapsearch failed ($RC)!"
72         kill -HUP $PID
73         exit $RC
74 fi
75
76 echo "Testing ManageDsaIT searching below referral object..."
77 $LDAPRSEARCH -S "" -MM -b "uid=xxx,o=abc,$REFDN" -h $LOCALHOST -p $PORT \
78         '(objectClass=referral)' '*' ref >> $SEARCHOUT 2>&1
79 RC=$?
80 if test $RC != $RCODE ; then
81         echo "ldapsearch: unexpected result ($RC)! (referral expected)"
82         kill -HUP $PID
83         exit $RC
84 fi
85
86 XREFDN="$REFDN"
87 echo "Testing base searching at $XREFDN..."
88 $LDAPRSEARCH -S "" -s base -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
89 RC=$?
90 if test $RC != 0 ; then
91         echo "ldapsearch failed ($RC)!"
92         kill -HUP $PID
93         exit $RC
94 fi
95
96 echo "Testing one-level searching at $XREFDN..."
97 $LDAPRSEARCH -S "" -s one -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
98 RC=$?
99 if test $RC != 0 ; then
100         echo "ldapsearch failed ($RC)!"
101         kill -HUP $PID
102         exit $RC
103 fi
104
105 echo "Testing subtree searching at $XREFDN..."
106 $LDAPRSEARCH -S "" -s sub -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
107 RC=$?
108 if test $RC != 0 ; then
109         echo "ldapsearch failed ($RC)!"
110         kill -HUP $PID
111         exit $RC
112 fi
113
114 XREFDN="o=abc,$REFDN"
115 echo "Testing base searching at $XREFDN..."
116 $LDAPRSEARCH -S "" -s base -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
117 RC=$?
118 if test $RC != $RCODE ; then
119         echo "ldapsearch: unexpected result ($RC)! (referral expected)"
120         kill -HUP $PID
121         exit $RC
122 fi
123
124 echo "Testing one-level searching at $XREFDN..."
125 $LDAPRSEARCH -S "" -s one -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
126 RC=$?
127 if test $RC != $RCODE ; then
128         echo "ldapsearch: unexpected result ($RC)! (referral expected)"
129         kill -HUP $PID
130         exit $RC
131 fi
132
133 echo "Testing subtree searching at $XREFDN..."
134 $LDAPRSEARCH -S "" -s sub -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
135 RC=$?
136 if test $RC != $RCODE ; then
137         echo "ldapsearch: unexpected result ($RC)! (referral expected)"
138         kill -HUP $PID
139         exit $RC
140 fi
141
142 XREFDN="uid=xxx,o=abc,$REFDN"
143 echo "Testing base searching at $XREFDN..."
144 $LDAPRSEARCH -S "" -s base -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
145 RC=$?
146 if test $RC != $RCODE ; then
147         echo "ldapsearch: unexpected result ($RC)! (referral expected)"
148         kill -HUP $PID
149         exit $RC
150 fi
151
152 echo "Testing one-level searching at $XREFDN..."
153 $LDAPRSEARCH -S "" -s one -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
154 RC=$?
155 if test $RC != $RCODE ; then
156         echo "ldapsearch: unexpected result ($RC)! (referral expected)"
157         kill -HUP $PID
158         exit $RC
159 fi
160
161 echo "Testing subtree searching at $XREFDN..."
162 $LDAPRSEARCH -S "" -s sub -b "$XREFDN" -h $LOCALHOST -p $PORT 1.1 >> $SEARCHOUT 2>&1
163 RC=$?
164 if test $RC != $RCODE ; then
165         echo "ldapsearch: unexpected result ($RC)! (referral expected)"
166         kill -HUP $PID
167         exit $RC
168 fi
169
170 kill -HUP $PID
171 LDIF=$SEARCHOUTMASTER
172 echo "Filtering ldapsearch results..."
173 . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
174 echo "Filtering expected LDIF for comparison..."
175 . $LDIFFILTER < $REFERRALOUT > $LDIFFLT
176 echo "Comparing filter output..."
177 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
178
179 if test $? != 0 ; then
180         echo "Comparison failed"
181         exit 1
182 fi
183
184 echo ">>>>> Test succeeded"
185
186
187 exit 0