]> git.sur5r.net Git - openldap/blob - tests/scripts/test003-search
Fix cleanup code to use standard expressions for ignoring CVS directories.
[openldap] / tests / scripts / test003-search
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 searching..."
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 exact searching..."
41 $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \
42         'sn=jensen' >> $TESTOUT 2>&1
43 if [ $RC != 0 ]; then
44         echo "ldapsearch failed!"
45         kill -HUP $PID
46         exit $RC
47 fi
48
49 echo "Testing OR searching..."
50 $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \
51         '(|(objectclass=rfc822mailgroup)(sn=jones))' >> $TESTOUT 2>&1
52 if [ $RC != 0 ]; then
53         echo "ldapsearch failed!"
54         kill -HUP $PID
55         exit $RC
56 fi
57
58 echo "Testing AND matching and ends-with searching..."
59 $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \
60         '(&(objectclass=rfc822mailgroup)(cn=A*))' >> $TESTOUT 2>&1
61 if [ $RC != 0 ]; then
62         echo "ldapsearch failed!"
63         kill -HUP $PID
64         exit $RC
65 fi
66
67 echo "Testing NOT searching..."
68 $LDAPSEARCH -L -S "" -b "$BASEDN" -h localhost -p $PORT \
69         '(!(objectclass=person))' | grep -v "^modifytimestamp:" \
70         >> $TESTOUT 2>&1
71 if [ $RC != 0 ]; then
72         echo "ldapsearch failed!"
73         kill -HUP $PID
74         exit $RC
75 fi
76
77 kill -HUP $PID
78
79 echo "Comparing results"
80 cmp $TESTOUT $SEARCHOUTMASTER
81 if [ $? != 0 ]; then
82         echo "Comparison failed"
83         exit 1
84 fi
85
86 echo ">>>>> Test succeeded"
87
88
89 exit 0