tests: Make tests/kdc/check-kadmin fast
Not sure why we ever needed the run-kadmind-for-one-operation approach to testing. Anyways, we probably don't. Ditching that and using the --detach mechanism of daemonization means we don't need to sleep in the test (except when we need to restart kadmind with different options).
This commit is contained in:
@@ -100,6 +100,11 @@ echo Starting kdc ; > messages.log
|
||||
${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; }
|
||||
kdcpid=`getpid kdc`
|
||||
|
||||
echo Starting kadmind
|
||||
${kadmind} --detach --list-chunk-size=1 \
|
||||
|| { echo "kadmind failed to start"; cat messages.log; exit 1; }
|
||||
kadmpid=`getpid kadmind`
|
||||
|
||||
trap "kill -9 ${kdcpid} ${kadmpid}" EXIT
|
||||
|
||||
#----------------------------------
|
||||
@@ -107,58 +112,34 @@ echo "kinit (no admin); test mod --alias authorization"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} hasalias@${R} || exit 1
|
||||
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
# Check that one non-permitted alias -> failure
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=badalias@${R} hasalias@${R} &&
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
wait $kadmpid || { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
# Check that all permitted aliases -> success
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=goodalias2@${R} hasalias@${R} ||
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
wait $kadmpid || { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
# Check that we can drop aliases
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p hasalias@${R} modify --alias=goodalias3@${R} hasalias@${R} ||
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
wait $kadmpid || { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
${kadmin} -l get hasalias@${R} | grep Aliases: > kadmin.tmp
|
||||
read junk aliases < kadmin.tmp
|
||||
rm kadmin.tmp
|
||||
[ "$aliases" != "goodalias3@${R}" ] && { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=goodalias2@${R} --alias=goodalias3@${R} hasalias@${R} ||
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
wait $kadmpid || { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
${kadmin} -l get hasalias@${R} | grep Aliases: > kadmin.tmp
|
||||
read junk aliases < kadmin.tmp
|
||||
rm kadmin.tmp
|
||||
[ "$aliases" != "goodalias1@${R} goodalias2@${R} goodalias3@${R}" ] && { echo "FOO failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (no admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} bar@${R} || exit 1
|
||||
@@ -171,10 +152,6 @@ ${kadmin} -l get kaka2@${R} > /dev/null ||
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (no admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} baz@${R} || exit 1
|
||||
@@ -184,10 +161,6 @@ ${kadmin} -p baz@${R} get bar@${R} > /dev/null ||
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (no admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} baz@${R} || exit 1
|
||||
@@ -197,10 +170,6 @@ ${kadmin} -p baz@${R} passwd -p "$foopassword" bar@${R} > /dev/null 2>/dev/null
|
||||
{ echo "kadmin succesded $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (no admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} baz@${R} || exit 1
|
||||
@@ -210,10 +179,6 @@ ${kadmin} -p baz@${R} get bar@${R} > /dev/null ||
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (no admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} bez@${R} || exit 1
|
||||
@@ -223,10 +188,6 @@ ${kadmin} -p bez@${R} passwd -p "$foopassword" bar@${R} > /dev/null 2>/dev/null
|
||||
{ echo "kadmin succesded $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (no admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} fez@${R} || exit 1
|
||||
@@ -236,10 +197,6 @@ ${kadmin} -p fez@${R} get bar@${R} > /dev/null ||
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (no admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} fez@${R} || exit 1
|
||||
@@ -249,10 +206,6 @@ ${kadmin} -p fez@${R} passwd -p "$foopassword" bar@${R} > /dev/null 2>/dev/null
|
||||
{ echo "kadmin succesded $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kinit (admin)"
|
||||
${kinit} --password-file=${objdir}/foopassword \
|
||||
-S kadmin/admin@${R} foo/admin@${R} || exit 1
|
||||
@@ -290,10 +243,6 @@ cmp kadmin.tmp ${srcdir}/donotexists.txt || \
|
||||
{ echo "wrong response"; exit 1;}
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kadmin get pkinit-acl"
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p foo/admin@${R} get -o pkinit-acl pkinit@${R} \
|
||||
@@ -301,10 +250,6 @@ ${kadmin} -p foo/admin@${R} get -o pkinit-acl pkinit@${R} \
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kadmin get -o principal"
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p foo/admin@${R} get -o principal bar@${R} \
|
||||
@@ -316,10 +261,6 @@ fi
|
||||
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kadmin get -o kvno"
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p foo/admin@${R} get -o kvno bar@${R} \
|
||||
@@ -331,10 +272,6 @@ fi
|
||||
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kadmin get -o princ_expire_time"
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p foo/admin@${R} get -o princ_expire_time bar@${R} \
|
||||
@@ -345,10 +282,6 @@ if test "`cat kadmin.tmp`" != "Principal expires: never" ; then
|
||||
fi
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kadmin get -s -o attributes"
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} -p foo/admin@${R} get -s -o attributes bar@${R} \
|
||||
@@ -359,44 +292,26 @@ if test "`cat kadmin.tmp`" != "Attributes" ; then
|
||||
fi
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kadmin prune"
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} prune --kvno=2 prune@${R} \
|
||||
> kadmin.tmp 2>&1 || \
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
wait $kadmpid || { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} get prune@${R} \
|
||||
> kadmin.tmp 2>&1 || \
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
wait $kadmpid || { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
cat kadmin.tmp | ${EGREP} Keytypes: | cut -d: -f2 | tr ' ' '
|
||||
' | sed 's/^.*[[]\(.*\)[]].*$/\1/' | grep '[0-9]' | sort -nu | tr -d '
|
||||
' | ${EGREP} '^13$' > /dev/null || \
|
||||
{ echo "kadmin prune failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
#----------------------------------
|
||||
${kadmind} -d &
|
||||
kadmpid=$!
|
||||
sleep 1
|
||||
|
||||
echo "kadmin pruneall"
|
||||
env KRB5CCNAME=${cache} \
|
||||
${kadmin} get pruneall@${R} \
|
||||
> kadmin.tmp 2>&1 || \
|
||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||
wait $kadmpid || { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||
|
||||
cat kadmin.tmp | ${EGREP} Keytypes: | cut -d: -f2 | tr ' ' '
|
||||
' | sed 's/^.*[[]\(.*\)[]].*$/\1/' | grep '[0-9]' | sort -nu | tr -d '
|
||||
' | ${EGREP} '^3$' > /dev/null || \
|
||||
|
Reference in New Issue
Block a user