#!/bin/sh
+HEIM_PIDFILE_DIR="${objdir}/"
+export HEIM_PIDFILE_DIR
+
unset KRB5_CONFIG
unset KRB5CCNAME
have_db="${top_builddir}/tests/db/have-db"
leaks_kill="${top_srcdir}/tests/kdc/leaks-kill.sh"
wait_kdc="${top_srcdir}/tests/kdc/wait-kdc.sh"
+getpid () {
+ if [ -f "$HEIM_PIDFILE_DIR/lt-${1}.pid" ]; then
+ cat "$HEIM_PIDFILE_DIR/lt-${1}.pid"
+ else
+ cat "$HEIM_PIDFILE_DIR/${1}.pid"
+ fi
+}
if [ ! "${NO_AFS}" ] ; then
afs_no_unlog="--no-unlog"
${kadmin} check ${R} || exit 1
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- exit 1
-fi
+${kdc} --testing --detach || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo u1 > ${objdir}/foopassword
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
${kadmin} check ${R} || exit 1
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo ds > ${objdir}/barpassword
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo ds > ${objdir}/barpassword
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
port = 49188
do_subst = sed -e 's,[@]srcdir[@],$(srcdir),g' \
+ -e 's,[@]env_setup[@],$(top_builddir)/tests/bin/setup-env,g' \
-e 's,[@]port[@],$(port),g' \
-e 's,[@]objdir[@],$(top_builddir)/tests/java,g'
#
srcdir="@srcdir@"
+env_setup="@env_setup@"
objdir="@objdir@"
port="@port@"
+. ${env_setup}
+
# Disable test if: no data, no java, or socket wrapper
../db/have-db || exit 77
sh ${srcdir}/have-java.sh || exit 77
${kadmin} ext -k ${keytab} ${server}@${R} || exit 1
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo foo > ${objdir}/foopassword
echo "Starting kdc" ; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo foo > ${objdir}/foopassword
echo Starting kdc ; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo foo > ${objdir}/foopassword
echo Starting kdc; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo foo > ${objdir}/foopassword
echo Starting kdc; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo $password > ${objdir}/foopassword
echo "Starting kdc" ; > messages.log
-env ${HEIM_MALLOC_DEBUG} ${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+env ${HEIM_MALLOC_DEBUG} ${kdc} --detach --testing ||
+ { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; cat messages.log; exit 1;" EXIT
echo Starting kdc ; > messages.log
env MallocStackLogging=1 MallocStackLoggingNoCompact=1 MallocErrorAbort=1 MallocLogFile=${objdir}/malloc-log \
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; cat messages.log; exit 1;" EXIT
echo Starting kdc ; > messages.log
env MallocStackLogging=1 MallocStackLoggingNoCompact=1 MallocErrorAbort=1 MallocLogFile=${objdir}/malloc-log \
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
trap "echo 'killing ipropd s + m + kdc'; kill -9 \${ipdm} \${ipds} \${kdcpid} >/dev/null 2>/dev/null; tail messages.log ; tail iprop-stats; exit 1;" EXIT
echo Starting kdc ; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc} || exit 1
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
echo "starting master" ; > messages.log
env ${HEIM_MALLOC_DEBUG} \
${ipropd_master} --hostname=localhost -k ${keytab} \
- --database=${objdir}/current-db &
-ipdm=$!
-sh ${wait_kdc} ipropd-master || exit 1
+ --database=${objdir}/current-db --detach ||
+ { echo "ipropd-master failed to start"; exit 1; }
+ipdm=`getpid ipropd-master`
echo "starting slave" ; > messages.log
env ${HEIM_MALLOC_DEBUG} \
KRB5_CONFIG="${objdir}/krb5-slave.conf" \
-${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} localhost &
-ipds=$!
+${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} --detach localhost ||
+ { echo "ipropd-slave failed to start"; exit 1; }
+ipds=`getpid ipropd-slave`
sh ${wait_kdc} ipropd-slave messages.log 'slave status change: up-to-date' || exit 1
sleep 1
sh ${leaks_kill} ipropd-slave $ipds || exit 1
rm -f iprop-slave-status
+sleep 2
${EGREP} 'iprop/slave.test.h5l.se@TEST.H5L.SE.*Down' iprop-stats >/dev/null || exit 1
# ----------------- checking: slave is missing changes while down
> iprop-stats
env ${HEIM_MALLOC_DEBUG} \
KRB5_CONFIG="${objdir}/krb5-slave.conf" \
-${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} localhost &
-ipds=$!
+${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} --detach localhost ||
+ { echo "ipropd-slave failed to start"; exit 1; }
+ipds=`getpid ipropd-slave`
sh ${wait_kdc} ipropd-slave messages.log 'slave status change: up-to-date' || exit 1
sleep 1
echo "starting slave" ; > messages.log
env ${HEIM_MALLOC_DEBUG} \
KRB5_CONFIG="${objdir}/krb5-slave.conf" \
-${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} localhost &
-ipds=$!
+${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} --detach localhost ||
+ { echo "ipropd-slave failed to start"; exit 1; }
+ipds=`getpid ipropd-slave`
sh ${wait_kdc} ipropd-slave messages.log 'slave status change: up-to-date' || exit 1
sleep 1
echo "starting master" ; > messages.log
env ${HEIM_MALLOC_DEBUG} \
${ipropd_master} --hostname=localhost -k ${keytab} \
- --database=${objdir}/current-db &
-ipdm=$!
-sh ${wait_kdc} ipropd-master || exit 1
+ --database=${objdir}/current-db --detach ||
+ { echo "ipropd-master failed to start"; exit 1; }
+ipdm=`getpid ipropd-master`
echo "starting slave" ; > messages.log
env ${HEIM_MALLOC_DEBUG} \
KRB5_CONFIG="${objdir}/krb5-slave.conf" \
-${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} localhost &
-ipds=$!
+${ipropd_slave} --hostname=slave.test.h5l.se -k ${keytab} --detach localhost ||
+ { echo "ipropd-slave failed to start"; exit 1; }
+ipds=`getpid ipropd-slave`
sh ${wait_kdc} ipropd-slave messages.log 'slave status change: up-to-date' || exit 1
sleep 1
echo "Staring master again" ; > messages.log
env ${HEIM_MALLOC_DEBUG} \
${ipropd_master} --hostname=localhost -k ${keytab} \
- --database=${objdir}/current-db &
-ipdm=$!
-sh ${wait_kdc} ipropd-master || exit 1
+ --database=${objdir}/current-db --detach ||
+ { echo "ipropd-master failed to start"; exit 1; }
+ipdm=`getpid ipropd-master`
echo "probing for slave pid"
kill -0 ${ipds} || { echo "slave no longer there"; exit 1; }
echo foo > ${objdir}/foopassword
echo Starting kdc ; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- kill -9 ${kadmpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid} ${kadmpid}" EXIT
echo Starting kdc ; > messages.log
env MallocStackLogging=1 MallocStackLoggingNoCompact=1 MallocErrorAbort=1 MallocLogFile=${objdir}/malloc-log \
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing ||
+ { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
echo Starting kpasswdd; > messages.log
-env ${HEIM_MALLOC_DEBUG} ${kpasswdd} &
-kpasswddpid=$!
+env ${HEIM_MALLOC_DEBUG} ${kpasswdd} --detach ||
+ { echo "kpasswdd failed to start"; exit 1; }
+kpasswddpid=`getpid kpasswdd`
trap "kill -9 ${kdcpid} ${kpasswddpid}; echo signal killing kdc kpasswdd; exit 1;" EXIT
echo foo > ${objdir}/foopassword
echo Starting kdc ; > messages.log
- ${kdc} &
- kdcpid=$!
-
- sh ${wait_kdc}
- if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
- fi
+ ${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+ kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
echo foo > ${objdir}/foopassword
echo Starting kdc ; > messages.log
-env ${HEIM_MALLOC_DEBUG} ${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+env ${HEIM_MALLOC_DEBUG} ${kdc} --detach --testing ||
+ { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
echo Starting kpasswdd
-env ${HEIM_MALLOC_DEBUG} ${kpasswdd} &
-kpasswddpid=$!
+env ${HEIM_MALLOC_DEBUG} ${kpasswdd} --detach ||
+ { echo "kpasswdd failed to start"; exit 1; }
+kpasswddpid=`getpid kpasswdd`
trap "kill -9 ${kdcpid} ${kpasswddpid}; echo signal killing kdc; exit \$ec;" EXIT
echo foo > ${objdir}/foopassword
echo Starting kdc ; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; cat ca.crt kdc.crt pkinit.crt ;exit 1;" EXIT
kgetcred="${kgetcred} -c $cache"
kdestroy="${kdestroy} -c $cache ${afs_no_unlog}"
-
KRB5_CONFIG="${objdir}/krb5.conf"
export KRB5_CONFIG
echo foo > ${objdir}/foopassword
echo Starting kdc ; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
uu_server="${TESTS_ENVIRONMENT} ../../appl/test/uu_server"
uu_client="${TESTS_ENVIRONMENT} ../../appl/test/uu_client"
-
KRB5_CONFIG="${objdir}/krb5.conf"
export KRB5_CONFIG
echo foo > ${objdir}/foopassword
echo Starting kdc ; > messages.log
-${kdc} &
-kdcpid=$!
-
-sh ${wait_kdc}
-if [ "$?" != 0 ] ; then
- kill -9 ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill -9 ${kdcpid} ${uuspid}; echo signal killing kdc; exit 1;" EXIT
echo foo > ${objdir}/foopassword
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- sh ${srcdir}/slapd-stop
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill ${kdcpid}; echo signal killing kdc; sh ${srcdir}/slapd-stop ; exit 1;" EXIT
port = 49188
do_subst = sed -e 's,[@]srcdir[@],$(srcdir),g' \
+ -e 's,[@]env_setup[@],$(top_builddir)/tests/bin/setup-env,g' \
-e 's,[@]port[@],$(port),g' \
-e 's,[@]objdir[@],$(top_builddir)/tests/plugin,g' \
-e 's,[@]EGREP[@],$(EGREP),g'
#
srcdir="@srcdir@"
+env_setup="@env_setup@"
objdir="@objdir@"
EGREP="@EGREP@"
+. ${env_setup}
+
testfailed="echo test failed; cat messages.log; exit 1"
# If there is no useful db support compile in, disable test
> messages.log
echo Starting kdc
-${kdc} &
-kdcpid=$!
-
-sh ${srcdir}/../kdc/wait-kdc.sh
-if [ "$?" != 0 ] ; then
- kill ${kdcpid}
- exit 1
-fi
+${kdc} --detach --testing || { echo "kdc failed to start"; exit 1; }
+kdcpid=`getpid kdc`
trap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT