1 1.1 lukem #! /bin/sh 2 1.1.1.4 tron # $OpenLDAP$ 3 1.1 lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>. 4 1.1 lukem ## 5 1.1.1.4 tron ## Copyright 1998-2014 The OpenLDAP Foundation. 6 1.1 lukem ## All rights reserved. 7 1.1 lukem ## 8 1.1 lukem ## Redistribution and use in source and binary forms, with or without 9 1.1 lukem ## modification, are permitted only as authorized by the OpenLDAP 10 1.1 lukem ## Public License. 11 1.1 lukem ## 12 1.1 lukem ## A copy of this license is available in the file LICENSE in the 13 1.1 lukem ## top-level directory of the distribution or, alternatively, at 14 1.1 lukem ## <http://www.OpenLDAP.org/license.html>. 15 1.1 lukem 16 1.1 lukem echo "running defines.sh" 17 1.1 lukem . $SRCDIR/scripts/defines.sh 18 1.1 lukem 19 1.1 lukem mkdir -p $TESTDIR $DBDIR1 20 1.1 lukem 21 1.1 lukem echo "Running slapadd to build slapd database..." 22 1.1 lukem . $CONFFILTER $BACKEND $MONITORDB < $MCONF > $ADDCONF 23 1.1 lukem $SLAPADD -f $ADDCONF -l $LDIFORDERED 24 1.1 lukem RC=$? 25 1.1 lukem if test $RC != 0 ; then 26 1.1 lukem echo "slapadd failed ($RC)!" 27 1.1 lukem exit $RC 28 1.1 lukem fi 29 1.1 lukem 30 1.1 lukem echo "Running slapindex to index slapd database..." 31 1.1 lukem . $CONFFILTER $BACKEND $MONITORDB < $CONF > $CONF1 32 1.1 lukem $SLAPINDEX -f $CONF1 33 1.1 lukem RC=$? 34 1.1 lukem if test $RC != 0 ; then 35 1.1 lukem echo "warning: slapindex failed ($RC)" 36 1.1 lukem echo " assuming no indexing support" 37 1.1 lukem fi 38 1.1 lukem 39 1.1 lukem echo "Starting slapd on TCP/IP port $PORT1..." 40 1.1 lukem $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 & 41 1.1 lukem PID=$! 42 1.1 lukem if test $WAIT != 0 ; then 43 1.1 lukem echo PID $PID 44 1.1 lukem read foo 45 1.1 lukem fi 46 1.1 lukem KILLPIDS="$PID" 47 1.1 lukem 48 1.1 lukem sleep 1 49 1.1 lukem 50 1.1 lukem echo "Testing slapd searching..." 51 1.1 lukem for i in 0 1 2 3 4 5; do 52 1.1 lukem $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \ 53 1.1 lukem 'objectclass=*' > /dev/null 2>&1 54 1.1 lukem RC=$? 55 1.1 lukem if test $RC = 0 ; then 56 1.1 lukem break 57 1.1 lukem fi 58 1.1 lukem echo "Waiting 5 seconds for slapd to start..." 59 1.1 lukem sleep 5 60 1.1 lukem done 61 1.1 lukem 62 1.1 lukem if test $RC != 0 ; then 63 1.1 lukem echo "ldapsearch failed ($RC)!" 64 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 65 1.1 lukem exit $RC 66 1.1 lukem fi 67 1.1 lukem 68 1.1 lukem cat /dev/null > $SEARCHOUT 69 1.1 lukem 70 1.1 lukem echo "Testing exact searching..." 71 1.1 lukem echo "# Testing exact searching..." >> $SEARCHOUT 72 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 73 1.1 lukem '(sn:=jensen)' >> $SEARCHOUT 2>&1 74 1.1 lukem RC=$? 75 1.1 lukem if test $RC != 0 ; then 76 1.1 lukem echo "ldapsearch failed ($RC)!" 77 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 78 1.1 lukem exit $RC 79 1.1 lukem fi 80 1.1 lukem 81 1.1 lukem echo "Testing approximate searching..." 82 1.1 lukem echo "# Testing approximate searching..." >> $SEARCHOUT 83 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 84 1.1 lukem '(sn~=jensen)' name >> $SEARCHOUT 2>&1 85 1.1 lukem RC=$? 86 1.1 lukem if test $RC != 0 ; then 87 1.1 lukem echo "ldapsearch failed ($RC)!" 88 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 89 1.1 lukem exit $RC 90 1.1 lukem fi 91 1.1 lukem 92 1.1 lukem echo "Testing OR searching..." 93 1.1 lukem echo "# Testing OR searching..." >> $SEARCHOUT 94 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 95 1.1 lukem '(|(givenName=XX*YY*Z)(cn=)(undef=*)(objectclass=groupofnames)(objectclass=groupofuniquenames)(sn:caseExactMatch:=Jones))' >> $SEARCHOUT 2>&1 96 1.1 lukem RC=$? 97 1.1 lukem if test $RC != 0 ; then 98 1.1 lukem echo "ldapsearch failed ($RC)!" 99 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 100 1.1 lukem exit $RC 101 1.1 lukem fi 102 1.1 lukem 103 1.1 lukem echo "Testing AND matching and ends-with searching..." 104 1.1 lukem echo "# Testing AND matching and ends-with searching..." >> $SEARCHOUT 105 1.1 lukem $LDAPSEARCH -S "" -b "ou=groups,$BASEDN" -s one -h $LOCALHOST -p $PORT1 \ 106 1.1 lukem '(&(|(objectclass=groupofnames)(objectclass=groupofuniquenames))(cn=A*))' >> $SEARCHOUT 2>&1 107 1.1 lukem RC=$? 108 1.1 lukem if test $RC != 0 ; then 109 1.1 lukem echo "ldapsearch failed ($RC)!" 110 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 111 1.1 lukem exit $RC 112 1.1 lukem fi 113 1.1 lukem 114 1.1 lukem echo "Testing NOT searching..." 115 1.1 lukem echo "# Testing NOT searching..." >> $SEARCHOUT 116 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 117 1.1 lukem '(!(objectclass=pilotPerson))' >> $SEARCHOUT 2>&1 118 1.1 lukem RC=$? 119 1.1 lukem if test $RC != 0 ; then 120 1.1 lukem echo "ldapsearch failed ($RC)!" 121 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 122 1.1 lukem exit $RC 123 1.1 lukem fi 124 1.1 lukem 125 1.1 lukem echo "Testing objectClass/attributeType inheritance ..." 126 1.1 lukem echo "# Testing objectClass/attributeType inheritance ..." >> $SEARCHOUT 127 1.1 lukem $LDAPSEARCH -M -a never -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 128 1.1 lukem '(&(objectClass=inetorgperson)(userid=uham))' \ 129 1.1 lukem "2.5.4.0" "userid" >> $SEARCHOUT 2>&1 130 1.1 lukem RC=$? 131 1.1 lukem if test $RC != 0 ; then 132 1.1 lukem echo "ldapsearch failed ($RC)!" 133 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 134 1.1 lukem exit $RC 135 1.1 lukem fi 136 1.1 lukem 137 1.1 lukem echo "Testing extended RFC2254 searching:" 138 1.1 lukem echo "# Testing extended RFC2254 searching:" >> $SEARCHOUT 139 1.1 lukem 140 1.1 lukem FILTER="(:dn:caseIgnoreIA5Match:=example)" 141 1.1 lukem echo " f=$FILTER ..." 142 1.1 lukem echo "# f=$FILTER ..." >> $SEARCHOUT 143 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 144 1.1 lukem "$FILTER" >> $SEARCHOUT 2>&1 145 1.1 lukem 146 1.1 lukem RC=$? 147 1.1 lukem if test $RC != 0 ; then 148 1.1 lukem echo "ldapsearch failed ($RC)!" 149 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 150 1.1 lukem exit $RC 151 1.1 lukem fi 152 1.1 lukem 153 1.1 lukem FILTER="(:dn:caseExactMatch:=Information Technology Division)" 154 1.1 lukem echo " f=$FILTER ..." 155 1.1 lukem echo "# f=$FILTER ..." >> $SEARCHOUT 156 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 157 1.1 lukem "$FILTER" >> $SEARCHOUT 2>&1 158 1.1 lukem 159 1.1 lukem # ITS#4380: don't crash when a matchingRule without pretty/validate is used 160 1.1 lukem FILTER="(:dn:caseIgnoreSubstringsMatch:=Information Technology Division)" 161 1.1 lukem echo " f=$FILTER ..." 162 1.1 lukem echo "# f=$FILTER ..." >> $SEARCHOUT 163 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 164 1.1 lukem "$FILTER" >> $SEARCHOUT 2>&1 165 1.1 lukem 166 1.1 lukem RC=$? 167 1.1 lukem if test $RC != 0 ; then 168 1.1 lukem echo "ldapsearch failed ($RC)!" 169 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 170 1.1 lukem exit $RC 171 1.1 lukem fi 172 1.1 lukem 173 1.1 lukem FILTER="(name:dn:=whatever)" 174 1.1 lukem echo " f=$FILTER ..." 175 1.1 lukem echo "# f=$FILTER ..." >> $SEARCHOUT 176 1.1 lukem $LDAPSEARCH -S "" -b "" -s base -h $LOCALHOST -p $PORT1 \ 177 1.1 lukem "$FILTER" >> $SEARCHOUT 2>&1 178 1.1 lukem 179 1.1 lukem RC=$? 180 1.1 lukem if test $RC != 0 ; then 181 1.1 lukem echo "ldapsearch failed ($RC)!" 182 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 183 1.1 lukem exit $RC 184 1.1 lukem fi 185 1.1 lukem 186 1.1 lukem echo "Testing values return filter searching:" 187 1.1 lukem echo "# Testing values return filter searching:" >> $SEARCHOUT 188 1.1 lukem 189 1.1 lukem FILTER="(o=Example, Inc.)" 190 1.1 lukem echo " f=$FILTER ..." 191 1.1 lukem echo "# f=$FILTER ..." >> $SEARCHOUT 192 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 193 1.1 lukem -E '!mv='"$FILTER" "$FILTER" >> $SEARCHOUT 2>&1 194 1.1 lukem RC=$? 195 1.1 lukem if test $RC != 0 ; then 196 1.1 lukem echo "ldapsearch failed ($RC)!" 197 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 198 1.1 lukem exit $RC 199 1.1 lukem fi 200 1.1 lukem 201 1.1 lukem FILTER="(dc=example)" 202 1.1 lukem VRFILTER="((o:caseExactMatch:=Example, Inc.)(dc=example))" 203 1.1 lukem echo " f=$FILTER mv=$VRFILTER ..." 204 1.1 lukem echo "# f=$FILTER mv=$VRFILTER ..." >> $SEARCHOUT 205 1.1 lukem $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ 206 1.1 lukem -E '!mv='"$VRFILTER" "$FILTER" >> $SEARCHOUT 2>&1 207 1.1 lukem RC=$? 208 1.1 lukem if test $RC != 0 ; then 209 1.1 lukem echo "ldapsearch failed ($RC)!" 210 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 211 1.1 lukem exit $RC 212 1.1 lukem fi 213 1.1 lukem 214 1.1 lukem FILTER="(attributeTypes=0.9.2342.19200300.100.1.25)" 215 1.1 lukem echo " f=$FILTER ..." 216 1.1 lukem echo "# f=$FILTER ..." >> $SEARCHOUT 217 1.1 lukem $LDAPSEARCH -S "" -b "cn=Subschema" -s "base" -h $LOCALHOST -p $PORT1 \ 218 1.1 lukem -E '!mv='"$FILTER" "$FILTER" "attributeTypes" >> $SEARCHOUT 2>&1 219 1.1 lukem RC=$? 220 1.1 lukem if test $RC != 0 ; then 221 1.1 lukem echo "ldapsearch failed ($RC)!" 222 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 223 1.1 lukem exit $RC 224 1.1 lukem fi 225 1.1 lukem 226 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 227 1.1 lukem 228 1.1 lukem LDIF=$SEARCHOUTMASTER 229 1.1 lukem LDIF2=$SEARCHOUTX 230 1.1 lukem 231 1.1 lukem echo "Filtering ldapsearch results..." 232 1.1.1.3 adam $LDIFFILTER < $SEARCHOUT > $SEARCHFLT 233 1.1 lukem echo "Filtering original ldif used to create database..." 234 1.1.1.3 adam $LDIFFILTER < $LDIF > $LDIFFLT 235 1.1.1.3 adam $LDIFFILTER < $LDIF2 >> $LDIFFLT 236 1.1 lukem echo "Comparing filter output..." 237 1.1 lukem $CMP $SEARCHFLT $LDIFFLT > $CMPOUT 238 1.1 lukem 239 1.1 lukem if test $? != 0 ; then 240 1.1 lukem echo "Comparison failed" 241 1.1 lukem exit 1 242 1.1 lukem fi 243 1.1 lukem 244 1.1 lukem echo ">>>>> Test succeeded" 245 1.1 lukem 246 1.1 lukem test $KILLSERVERS != no && wait 247 1.1 lukem 248 1.1 lukem exit 0 249