1#! /bin/sh
2# $OpenLDAP$
3## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4##
5## Copyright 1998-2016 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. $SRCDIR/scripts/defines.sh
17
18TB="" TN=""
19if test -t 1 ; then
20	TB=`$SHTOOL echo -e "%B" 2>/dev/null`
21	TN=`$SHTOOL echo -e "%b" 2>/dev/null`
22fi
23
24FAILCOUNT=0
25SKIPCOUNT=0
26SLEEPTIME=10
27
28echo ">>>>> Executing all LDAP tests for $BACKEND"
29
30if [ -n "$NOEXIT" ]; then
31	echo "Result	Test" > $TESTWD/results
32fi
33
34for CMD in ${SCRIPTDIR}/test*; do
35	case "$CMD" in
36		*~)		continue;;
37		*.bak)	continue;;
38		*.orig)	continue;;
39		*.sav)	continue;;
40		*)		test -f "$CMD" || continue;;
41	esac
42
43	# remove cruft from prior test
44	if test $PRESERVE = yes ; then
45		/bin/rm -rf $TESTDIR/db.*
46	else
47		/bin/rm -rf $TESTDIR
48	fi
49	if test $BACKEND = ndb ; then
50		mysql --user root <<EOF
51		drop database if exists db_1;
52		drop database if exists db_2;
53		drop database if exists db_3;
54		drop database if exists db_4;
55		drop database if exists db_5;
56		drop database if exists db_6;
57EOF
58	fi
59
60	BCMD=`basename $CMD`
61	if [ -x "$CMD" ]; then
62		echo ">>>>> Starting ${TB}$BCMD${TN} for $BACKEND..."
63		$CMD
64		RC=$?
65		if test $RC -eq 0 ; then
66			echo ">>>>> $BCMD completed ${TB}OK${TN} for $BACKEND."
67		else
68			echo ">>>>> $BCMD ${TB}failed${TN} for $BACKEND"
69			FAILCOUNT=`expr $FAILCOUNT + 1`
70
71			if [ -n "$NOEXIT" ]; then
72				echo "Continuing."
73			else
74				echo "(exit $RC)"
75				exit $RC
76			fi
77		fi
78	else
79		echo ">>>>> Skipping ${TB}$BCMD${TN} for $BACKEND."
80		SKIPCOUNT=`expr $SKIPCOUNT + 1`
81		RC="-"
82	fi
83
84	if [ -n "$NOEXIT" ]; then
85		echo "$RC	$BCMD" >> $TESTWD/results
86	fi
87
88#	echo ">>>>> waiting $SLEEPTIME seconds for things to exit"
89#	sleep $SLEEPTIME
90	echo ""
91done
92
93if [ -n "$NOEXIT" ]; then
94	if [ "$FAILCOUNT" -gt 0 ]; then
95		cat $TESTWD/results
96		echo "$FAILCOUNT tests for $BACKEND ${TB}failed${TN}. Please review the test log."
97	else
98		echo "All executed tests for $BACKEND ${TB}succeeded${TN}."
99	fi
100fi
101
102echo "$SKIPCOUNT tests for $BACKEND were ${TB}skipped${TN}."
103