]> git.sur5r.net Git - openldap/blob - tests/run.in
keeps syncrepl manpage sections current
[openldap] / tests / run.in
1 #!/bin/sh
2
3 USAGE="$0 [-b <backend>] [-c] [-k] [-p] [-u] [-w] <script>"
4
5 # configure generated
6 SRCDIR="@srcdir@"
7 TOPSRCDIR="@top_srcdir@"
8 LN_S="@LN_S@"
9
10 export SRCDIR TOPSRCDIR LN_S
11
12 AC_BDB=@BUILD_BDB@
13 AC_HDB=@BUILD_HDB@
14 AC_LDBM=@BUILD_LDBM@
15 AC_MONITOR=@BUILD_MONITOR@
16 AC_CACHE=@BUILD_CACHE@
17 AC_WITH_TLS=@WITH_TLS@
18
19 export AC_MONITOR AC_CACHE AC_WITH_TLS
20
21 if test ! -x ../servers/slapd/slapd ; then
22         echo "Could not locate slapd(8)"
23         exit 1
24 fi
25
26 if test $AC_BDB = yes ; then
27         BACKEND=bdb
28 elif test $AC_LDBM = yes ; then
29         BACKEND=ldbm
30 elif test $AC_HDB = yes ; then
31         BACKEND=hdbm
32 else
33         echo "Not configured with a suitable database backend"
34         exit 1
35 fi
36
37 CLEAN=no
38 WAIT=0
39 KILLSERVERS=yes
40 PRESERVE=${PRESERVE-no}
41 USERDATA=no
42
43 while test $# -gt 0 ; do
44         case "$1" in
45                 -b | -backend)
46                         BACKEND="$2"
47                         shift; shift ;;
48
49                 -c | -clean)
50                         CLEAN=yes
51                         shift; shift ;;
52
53                 -k | -kill)
54                         KILLSERVERS=no
55                         shift ;;
56
57                 -p | -preserve)
58                         PRESERVE=yes
59                         shift ;;
60
61                 -u | -userdata)
62                         USERDATA=yes
63                         shift ;;
64
65                 -w | -wait)
66                         WAIT=1
67                         shift ;;
68
69                 -)
70                         shift
71                         break ;;
72
73                 -*)
74                         echo "$USAGE"; exit 1
75                         ;;
76
77                 *)
78                         break ;;
79         esac
80 done
81
82 export BACKEND WAIT KILLSERVERS PRESERVE USERDATA
83
84 if test $# = 0 ; then
85         echo "$USAGE"; exit 1
86 fi
87
88 SCRIPTDIR="${SRCDIR}/scripts"
89 SCRIPTNAME="$1"
90 shift
91
92 if test -x "${SCRIPTDIR}/${SCRIPTNAME}" ; then
93         SCRIPT="${SCRIPTDIR}/${SCRIPTNAME}"
94 elif test -x "`echo ${SCRIPTDIR}/test*-${SCRIPTNAME}`"; then
95         SCRIPT="`echo ${SCRIPTDIR}/test*-${SCRIPTNAME}`"
96 elif test -x "`echo ${SCRIPTDIR}/${SCRIPTNAME}-*`"; then
97         SCRIPT="`echo ${SCRIPTDIR}/${SCRIPTNAME}-*`"
98 else
99         echo "run: ${SCRIPTNAME} not found (or not executable)"
100         exit 1;
101 fi
102
103 if test ! -r testdata/test.ldif ; then
104         ${LN_S} ${SRCDIR}/data testdata
105 fi
106 if test ! -r schema/core.schema ; then
107         ${LN_S} ${TOPSRCDIR}/servers/slapd/schema schema
108 fi
109 if test ! -r ucdata/UnicodeData.txt ; then
110         ${LN_S} ../libraries/liblunicode ucdata
111 fi
112
113 if test -d testrun ; then
114         if test $PRESERVE = no ; then
115                 echo "Cleaning up test run directory leftover from previous run."
116                 /bin/rm -rf testrun
117         elif test $PRESERVE = yes ; then
118                 echo "Cleaning up only database directories leftover from previous run."
119                 /bin/rm -rf testrun/db.*
120         fi
121 fi
122
123 if test $USERDATA = yes ; then
124         if test ! -d userdata ; then
125                 echo "User data directory (userdata) does not exist."
126                 exit 1
127         fi
128         mkdir -p testrun
129         cp -R userdata/* testrun
130 fi
131
132 # disable LDAP initialization
133 LDAPNOINIT=true; export LDAPNOINIT
134
135 echo "Running ${SCRIPT}..."
136 $SCRIPT $*
137 RC=$?
138
139 if test $CLEAN = yes ; then
140         echo "Cleaning up test run directory from this run."
141         /bin/rm -rf testrun
142         echo "Cleaning up symlinks."
143         /bin/rm -f testdata schema ucdata
144 fi
145
146 exit $RC