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; }
|
${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; }
|
||||||
kdcpid=`getpid kdc`
|
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
|
trap "kill -9 ${kdcpid} ${kadmpid}" EXIT
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
@@ -107,58 +112,34 @@ echo "kinit (no admin); test mod --alias authorization"
|
|||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} hasalias@${R} || exit 1
|
-S kadmin/admin@${R} hasalias@${R} || exit 1
|
||||||
|
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
# Check that one non-permitted alias -> failure
|
# Check that one non-permitted alias -> failure
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=badalias@${R} hasalias@${R} &&
|
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=badalias@${R} hasalias@${R} &&
|
||||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
{ 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
|
# Check that all permitted aliases -> success
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=goodalias2@${R} hasalias@${R} ||
|
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=goodalias2@${R} hasalias@${R} ||
|
||||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
{ 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
|
# Check that we can drop aliases
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p hasalias@${R} modify --alias=goodalias3@${R} hasalias@${R} ||
|
${kadmin} -p hasalias@${R} modify --alias=goodalias3@${R} hasalias@${R} ||
|
||||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
{ 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
|
${kadmin} -l get hasalias@${R} | grep Aliases: > kadmin.tmp
|
||||||
read junk aliases < kadmin.tmp
|
read junk aliases < kadmin.tmp
|
||||||
rm kadmin.tmp
|
rm kadmin.tmp
|
||||||
[ "$aliases" != "goodalias3@${R}" ] && { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
[ "$aliases" != "goodalias3@${R}" ] && { echo "kadmind failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=goodalias2@${R} --alias=goodalias3@${R} hasalias@${R} ||
|
${kadmin} -p hasalias@${R} modify --alias=goodalias1@${R} --alias=goodalias2@${R} --alias=goodalias3@${R} hasalias@${R} ||
|
||||||
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
{ 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
|
${kadmin} -l get hasalias@${R} | grep Aliases: > kadmin.tmp
|
||||||
read junk aliases < kadmin.tmp
|
read junk aliases < kadmin.tmp
|
||||||
rm kadmin.tmp
|
rm kadmin.tmp
|
||||||
[ "$aliases" != "goodalias1@${R} goodalias2@${R} goodalias3@${R}" ] && { echo "FOO failed $?"; cat messages.log ; exit 1; }
|
[ "$aliases" != "goodalias1@${R} goodalias2@${R} goodalias3@${R}" ] && { echo "FOO failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (no admin)"
|
echo "kinit (no admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} bar@${R} || exit 1
|
-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; }
|
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (no admin)"
|
echo "kinit (no admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} baz@${R} || exit 1
|
-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; }
|
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (no admin)"
|
echo "kinit (no admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} baz@${R} || exit 1
|
-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; }
|
{ echo "kadmin succesded $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (no admin)"
|
echo "kinit (no admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} baz@${R} || exit 1
|
-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; }
|
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (no admin)"
|
echo "kinit (no admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} bez@${R} || exit 1
|
-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; }
|
{ echo "kadmin succesded $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (no admin)"
|
echo "kinit (no admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} fez@${R} || exit 1
|
-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; }
|
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (no admin)"
|
echo "kinit (no admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} fez@${R} || exit 1
|
-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; }
|
{ echo "kadmin succesded $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kinit (admin)"
|
echo "kinit (admin)"
|
||||||
${kinit} --password-file=${objdir}/foopassword \
|
${kinit} --password-file=${objdir}/foopassword \
|
||||||
-S kadmin/admin@${R} foo/admin@${R} || exit 1
|
-S kadmin/admin@${R} foo/admin@${R} || exit 1
|
||||||
@@ -290,10 +243,6 @@ cmp kadmin.tmp ${srcdir}/donotexists.txt || \
|
|||||||
{ echo "wrong response"; exit 1;}
|
{ echo "wrong response"; exit 1;}
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kadmin get pkinit-acl"
|
echo "kadmin get pkinit-acl"
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p foo/admin@${R} get -o pkinit-acl pkinit@${R} \
|
${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; }
|
{ echo "kadmin failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kadmin get -o principal"
|
echo "kadmin get -o principal"
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p foo/admin@${R} get -o principal bar@${R} \
|
${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"
|
echo "kadmin get -o kvno"
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p foo/admin@${R} get -o kvno bar@${R} \
|
${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"
|
echo "kadmin get -o princ_expire_time"
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p foo/admin@${R} get -o princ_expire_time bar@${R} \
|
${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
|
fi
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kadmin get -s -o attributes"
|
echo "kadmin get -s -o attributes"
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} -p foo/admin@${R} get -s -o attributes bar@${R} \
|
${kadmin} -p foo/admin@${R} get -s -o attributes bar@${R} \
|
||||||
@@ -359,44 +292,26 @@ if test "`cat kadmin.tmp`" != "Attributes" ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kadmin prune"
|
echo "kadmin prune"
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} prune --kvno=2 prune@${R} \
|
${kadmin} prune --kvno=2 prune@${R} \
|
||||||
> kadmin.tmp 2>&1 || \
|
> kadmin.tmp 2>&1 || \
|
||||||
{ echo "kadmin failed $?"; cat messages.log ; exit 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} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} get prune@${R} \
|
${kadmin} get prune@${R} \
|
||||||
> kadmin.tmp 2>&1 || \
|
> kadmin.tmp 2>&1 || \
|
||||||
{ echo "kadmin failed $?"; cat messages.log ; exit 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 ' ' '
|
cat kadmin.tmp | ${EGREP} Keytypes: | cut -d: -f2 | tr ' ' '
|
||||||
' | sed 's/^.*[[]\(.*\)[]].*$/\1/' | grep '[0-9]' | sort -nu | tr -d '
|
' | sed 's/^.*[[]\(.*\)[]].*$/\1/' | grep '[0-9]' | sort -nu | tr -d '
|
||||||
' | ${EGREP} '^13$' > /dev/null || \
|
' | ${EGREP} '^13$' > /dev/null || \
|
||||||
{ echo "kadmin prune failed $?"; cat messages.log ; exit 1; }
|
{ echo "kadmin prune failed $?"; cat messages.log ; exit 1; }
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
${kadmind} -d &
|
|
||||||
kadmpid=$!
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "kadmin pruneall"
|
echo "kadmin pruneall"
|
||||||
env KRB5CCNAME=${cache} \
|
env KRB5CCNAME=${cache} \
|
||||||
${kadmin} get pruneall@${R} \
|
${kadmin} get pruneall@${R} \
|
||||||
> kadmin.tmp 2>&1 || \
|
> kadmin.tmp 2>&1 || \
|
||||||
{ echo "kadmin failed $?"; cat messages.log ; exit 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 ' ' '
|
cat kadmin.tmp | ${EGREP} Keytypes: | cut -d: -f2 | tr ' ' '
|
||||||
' | sed 's/^.*[[]\(.*\)[]].*$/\1/' | grep '[0-9]' | sort -nu | tr -d '
|
' | sed 's/^.*[[]\(.*\)[]].*$/\1/' | grep '[0-9]' | sort -nu | tr -d '
|
||||||
' | ${EGREP} '^3$' > /dev/null || \
|
' | ${EGREP} '^3$' > /dev/null || \
|
||||||
|
Reference in New Issue
Block a user