Home | History | Annotate | Line # | Download | only in scripts
      1 #! /bin/sh
      2 # $OpenLDAP$
      3 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4 ##
      5 ## Copyright 1998-2024 The OpenLDAP Foundation.
      6 ## All rights reserved.
      7 ##
      8 ## Redistribution and use in source and binary forms, with or without
      9 ## modification, are permitted only as authorized by the OpenLDAP
     10 ## Public License.
     11 ##
     12 ## A copy of this license is available in the file LICENSE in the
     13 ## top-level directory of the distribution or, alternatively, at
     14 ## <http://www.OpenLDAP.org/license.html>.
     15 
     16 echo "running defines.sh"
     17 . $SRCDIR/scripts/defines.sh
     18 
     19 mkdir -p $TESTDIR $DBDIR1
     20 
     21 echo "Starting slapd on TCP/IP port $PORT1..."
     22 . $CONFFILTER $BACKEND < $CONF > $CONF1
     23 $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
     24 PID=$!
     25 if test $WAIT != 0 ; then
     26     echo PID $PID
     27     read foo
     28 fi
     29 KILLPIDS="$PID"
     30 
     31 sleep 1
     32 
     33 echo "Using ldapsearch to check that slapd is running..."
     34 for i in 0 1 2 3 4 5; do
     35 	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
     36 		'objectclass=*' > /dev/null 2>&1
     37 	RC=$?
     38 	if test $RC = 0 ; then
     39 		break
     40 	fi
     41 	echo "Waiting 5 seconds for slapd to start..."
     42 	sleep 5
     43 done
     44 
     45 echo "Using ldapadd to populate the database..."
     46 $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD < \
     47 	$LDIFLANG > $TESTOUT 2>&1
     48 RC=$?
     49 if test $RC != 0 ; then
     50 	echo "ldapadd failed ($RC)!"
     51 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     52 	exit $RC
     53 fi
     54 
     55 echo "Using ldapsearch to read all the entries..."
     56 $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 -s base \
     57 	'(&)' > $SEARCHOUT 2>&1
     58 RC=$?
     59 
     60 if test $RC != 0 ; then
     61 	echo "ldapsearch failed ($RC)!"
     62 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     63 	exit $RC
     64 fi
     65 
     66 echo "Using ldapsearch to read name ..."
     67 $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 -s base \
     68 	'(&)' 'name' >> $SEARCHOUT 2>&1
     69 RC=$?
     70 
     71 if test $RC != 0 ; then
     72 	echo "ldapsearch failed ($RC)!"
     73 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     74 	exit $RC
     75 fi
     76 
     77 echo "Using ldapsearch to read name language tag ..."
     78 $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 -s base \
     79 	'(&)' 'name;lang-en-US' >> $SEARCHOUT 2>&1
     80 RC=$?
     81 
     82 if test $RC != 0 ; then
     83 	echo "ldapsearch failed ($RC)!"
     84 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     85 	exit $RC
     86 fi
     87 
     88 echo "Using ldapsearch to read name language range ..."
     89 $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 -s base \
     90 	'(&)' 'name;lang-en-' >> $SEARCHOUT 2>&1
     91 RC=$?
     92 
     93 if test $RC != 0 ; then
     94 	echo "ldapsearch failed ($RC)!"
     95 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     96 	exit $RC
     97 fi
     98 
     99 test $KILLSERVERS != no && kill -HUP $KILLPIDS
    100 
    101 echo "Filtering ldapsearch results..."
    102 $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
    103 echo "Filtering language ldif ..."
    104 $LDIFFILTER < $LDIFLANGOUT > $LDIFFLT
    105 echo "Comparing filter output..."
    106 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
    107 
    108 if test $? != 0 ; then
    109 	echo "comparison failed - language test failed!"
    110 	exit 1
    111 fi
    112 
    113 echo ">>>>> Test succeeded"
    114 
    115 test $KILLSERVERS != no && wait
    116 
    117 exit 0
    118