]> git.sur5r.net Git - openldap/blob - tests/scripts/test003-search
1b0e189eb13a4246a52f1abeb40f56efb4dd55fd
[openldap] / tests / scripts / test003-search
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 $SLAPADD -f $MCONF -l $LDIFORDERED
22 RC=$?
23 if test $RC != 0 ; then
24         echo "slapadd failed ($RC)!"
25         exit $RC
26 fi
27
28 echo "Running slapindex to index slapd database..."
29 $SLAPINDEX -f $CONF
30 RC=$?
31 if test $RC != 0 ; then
32         echo "warning: slapindex failed ($RC)"
33         echo "  assuming no indexing support"
34 fi
35
36 echo "Starting slapd on TCP/IP port $PORT..."
37 $SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
38 PID=$!
39
40 echo "Testing slapd searching..."
41 for i in 0 1 2 3 4 5; do
42         $LDAPSEARCH -s base -b "$MONITOR" -h localhost -p $PORT \
43                 'objectclass=*' > /dev/null 2>&1
44         RC=$?
45         if test $RC = 1 ; then
46                 echo "Waiting 5 seconds for slapd to start..."
47                 sleep 5
48         fi
49 done
50
51 if test $RC != 0 ; then
52         echo "ldapsearch failed ($RC)!"
53         kill -HUP $PID
54         exit $RC
55 fi
56
57 cat /dev/null > $SEARCHOUT
58
59 echo "Testing exact searching..."
60 $LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $PORT \
61         'sn=jensen' >> $SEARCHOUT 2>&1
62 if test $RC != 0 ; then
63         echo "ldapsearch failed ($RC)!"
64         kill -HUP $PID
65         exit $RC
66 fi
67
68 echo "Testing OR searching..."
69 $LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $PORT \
70         '(|(objectclass=groupofnames)(sn=jones))' >> $SEARCHOUT 2>&1
71 if test $RC != 0 ; then
72         echo "ldapsearch failed ($RC)!"
73         kill -HUP $PID
74         exit $RC
75 fi
76
77 echo "Testing AND matching and ends-with searching..."
78 $LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $PORT \
79         '(&(objectclass=groupofnames)(cn=A*))' >> $SEARCHOUT 2>&1
80 if test $RC != 0 ; then
81         echo "ldapsearch failed ($RC)!"
82         kill -HUP $PID
83         exit $RC
84 fi
85
86 echo "Testing NOT searching..."
87 $LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $PORT \
88         '(!(objectclass=person))' >> $SEARCHOUT 2>&1
89 if test $RC != 0 ; then
90         echo "ldapsearch failed ($RC)!"
91         kill -HUP $PID
92         exit $RC
93 fi
94
95 kill -HUP $PID
96
97 LDIF=$SEARCHOUTMASTER
98
99 echo "Filtering ldapsearch results..."
100 . $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT
101 echo "Filtering original ldif used to create database..."
102 . $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT
103 echo "Comparing filter output..."
104 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
105
106 if test $? != 0 ; then
107         echo "Comparison failed"
108         exit 1
109 fi
110
111 echo ">>>>> Test succeeded"
112
113
114 exit 0