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.10 christos ## Copyright 1998-2024 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.1.9 christos . $CONFFILTER $BACKEND < $CONF > $CONF1 23 1.1 lukem $SLAPADD -f $CONF1 -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 "Starting slapd on TCP/IP port $PORT1..." 31 1.1.1.9 christos $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 32 1.1 lukem PID=$! 33 1.1 lukem if test $WAIT != 0 ; then 34 1.1 lukem echo PID $PID 35 1.1 lukem read foo 36 1.1 lukem fi 37 1.1 lukem KILLPIDS="$PID" 38 1.1 lukem 39 1.1 lukem sleep 1 40 1.1 lukem 41 1.1 lukem echo "Testing slapd modify operations..." 42 1.1 lukem for i in 0 1 2 3 4 5; do 43 1.1.1.9 christos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 44 1.1 lukem 'objectclass=*' > /dev/null 2>&1 45 1.1 lukem RC=$? 46 1.1 lukem if test $RC = 0 ; then 47 1.1 lukem break 48 1.1 lukem fi 49 1.1 lukem echo "Waiting 5 seconds for slapd to start..." 50 1.1 lukem sleep 5 51 1.1 lukem done 52 1.1 lukem 53 1.1 lukem if test $RC != 0 ; then 54 1.1 lukem echo "ldapsearch failed ($RC)!" 55 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 56 1.1 lukem exit $RC 57 1.1 lukem fi 58 1.1 lukem 59 1.1 lukem echo "Testing modify, add, and delete..." 60 1.1.1.9 christos $LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD > \ 61 1.1.1.9 christos $TESTOUT -f $LDIFMODIFY 62 1.1 lukem RC=$? 63 1.1 lukem if test $RC != 0 ; then 64 1.1 lukem echo "ldapmodify failed ($RC)!" 65 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 66 1.1 lukem exit $RC 67 1.1 lukem fi 68 1.1 lukem 69 1.1 lukem echo "Using ldapmodify to add an empty entry (should fail with protocolError)..." 70 1.1.1.9 christos $LDAPMODIFY -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 71 1.1 lukem >> $TESTOUT 2>&1 << EOMODS 72 1.1 lukem dn: cn=Foo Bar,dc=example,dc=com 73 1.1 lukem changetype: add 74 1.1 lukem # EMPTY SEQUENCE OF ATTRS 75 1.1 lukem EOMODS 76 1.1 lukem 77 1.1 lukem RC=$? 78 1.1 lukem case $RC in 79 1.1 lukem 2) 80 1.1 lukem echo " ldapmodify failed ($RC)" 81 1.1 lukem ;; 82 1.1 lukem 0) 83 1.1 lukem echo " ldapmodify should have failed ($RC)!" 84 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 85 1.1.1.10 christos exit 1 86 1.1 lukem ;; 87 1.1 lukem *) 88 1.1 lukem echo " ldapmodify failed ($RC)!" 89 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 90 1.1 lukem exit $RC 91 1.1 lukem ;; 92 1.1 lukem esac 93 1.1 lukem 94 1.1 lukem echo "Using ldapsearch to retrieve all the entries..." 95 1.1.1.9 christos $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 96 1.1 lukem 'objectClass=*' > $SEARCHOUT 2>&1 97 1.1 lukem RC=$? 98 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 99 1.1 lukem if test $RC != 0 ; then 100 1.1 lukem echo "ldapsearch failed ($RC)!" 101 1.1 lukem exit $RC 102 1.1 lukem fi 103 1.1 lukem 104 1.1.1.9 christos LDIF=$MODIFYOUTPROVIDER 105 1.1 lukem 106 1.1 lukem echo "Filtering ldapsearch results..." 107 1.1.1.3 adam $LDIFFILTER < $SEARCHOUT > $SEARCHFLT 108 1.1 lukem echo "Filtering original ldif used to create database..." 109 1.1.1.3 adam $LDIFFILTER < $LDIF > $LDIFFLT 110 1.1 lukem echo "Comparing filter output..." 111 1.1 lukem $CMP $SEARCHFLT $LDIFFLT > $CMPOUT 112 1.1 lukem 113 1.1 lukem if test $? != 0 ; then 114 1.1 lukem echo "comparison failed - modify operations did not complete correctly" 115 1.1 lukem exit 1 116 1.1 lukem fi 117 1.1 lukem 118 1.1 lukem echo ">>>>> Test succeeded" 119 1.1 lukem 120 1.1 lukem test $KILLSERVERS != no && wait 121 1.1 lukem 122 1.1 lukem exit 0 123