aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRuss Allbery <rra@stanford.edu>2007-09-27 03:22:46 +0000
committerRuss Allbery <rra@stanford.edu>2007-09-27 03:22:46 +0000
commite0f6e1222ede4a7545ca995a8aacaae0b591cb9c (patch)
tree2af9d140d13ee321c6fdb81c4444ca2e0e93c4a3 /tests
parent7ec47028dbfe6df70d4c07e9546ae1680cf4e91f (diff)
Initial cut at srvtab support in the wallet client. This still requires
additional work and cleanup, particularly support for the sync attribute.
Diffstat (limited to 'tests')
-rw-r--r--tests/client/basic-t.in46
-rwxr-xr-xtests/data/cmd-fake13
-rw-r--r--tests/data/fake-databin0 -> 62 bytes
-rw-r--r--tests/data/fake-keytabbin62 -> 334 bytes
-rw-r--r--tests/data/fake-srvtabbin0 -> 47 bytes
5 files changed, 54 insertions, 5 deletions
diff --git a/tests/client/basic-t.in b/tests/client/basic-t.in
index f088933..50a4ab5 100644
--- a/tests/client/basic-t.in
+++ b/tests/client/basic-t.in
@@ -54,7 +54,7 @@ runfailure () {
}
# Print the number of tests.
-echo 7
+echo 10
# Find the client program.
if [ -f ../data/test.keytab ] ; then
@@ -65,7 +65,7 @@ else
fi
fi
if [ ! -f data/test.keytab ] || [ -z "@REMCTLD@" ] ; then
- for n in 1 2 3 4 5 6 7 ; do
+ for n in 1 2 3 4 5 6 7 8 9 10 ; do
echo ok $n \# skip -- no Kerberos configuration
done
exit 0
@@ -98,14 +98,56 @@ if [ ! -f data/pid ] ; then
exit 1
fi
+# We need a modified krb5.conf file for the srvtab test to work, since we need
+# to add a v4_realm setting for the test-k5.stanford.edu realm that the keytab
+# is for.
+krb5conf=
+for p in /etc/krb5.conf /usr/local/etc/krb5.conf ; do
+ if [ -r "$p" ] ; then
+ krb5conf="$p"
+ sed -e '/^ *test-k5.stanford.edu =/,/}/d' \
+ -e 's/\(default_realm.*=\) .*/\1 test-k5.stanford.edu/' \
+ "$p" > ./krb5.conf
+ cat >> krb5.conf <<EOF
+
+[realms]
+ test-k5.stanford.edu = {
+ v4_realm = TEST.STANFORD.EDU
+ }
+EOF
+ KRB5_CONFIG="./krb5.conf"
+ export KRB5_CONFIG
+ break
+ fi
+done
+
# Now, we can finally run our tests.
runsuccess "" -c fake-wallet get keytab -f keytab service/fake-test
+if cmp keytab data/fake-data >/dev/null 2>&1 ; then
+ printcount "ok"
+ rm keytab
+else
+ printcount "not ok"
+fi
+runsuccess "" -c fake-wallet get keytab -f keytab -S srvtab service/fake-srvtab
if cmp keytab data/fake-keytab >/dev/null 2>&1 ; then
printcount "ok"
rm keytab
else
printcount "not ok"
fi
+if [ -n "$krb5conf" ] ; then
+ if cmp srvtab data/fake-srvtab >/dev/null 2>&1 ; then
+ printcount "ok"
+ rm srvtab
+ else
+ printcount "not ok"
+ fi
+ KRB5_CONFIG=
+ rm krb5.conf
+else
+ printcount "ok # skip cannot find krb5.conf"
+fi
runsuccess "Some stuff about service/fake-test" \
-c fake-wallet show keytab service/fake-test
runfailure 1 "wallet: Unknown object type srvtab" \
diff --git a/tests/data/cmd-fake b/tests/data/cmd-fake
index 83e3e0a..16d4b3a 100755
--- a/tests/data/cmd-fake
+++ b/tests/data/cmd-fake
@@ -19,13 +19,20 @@ fi
case "$command" in
get)
- if [ "$1" = "service/fake-test" ] ; then
+ case "$1" in
+ service/fake-test)
+ cat data/fake-data
+ exit 0
+ ;;
+ service/fake-srvtab)
cat data/fake-keytab
exit 0
- else
+ ;;
+ *)
echo "Unknown keytab $1" >&2
exit 1
- fi
+ ;;
+ esac
;;
show)
if [ "$1" = "service/fake-test" ] ; then
diff --git a/tests/data/fake-data b/tests/data/fake-data
new file mode 100644
index 0000000..92e3caa
--- /dev/null
+++ b/tests/data/fake-data
Binary files differ
diff --git a/tests/data/fake-keytab b/tests/data/fake-keytab
index 92e3caa..714d9b6 100644
--- a/tests/data/fake-keytab
+++ b/tests/data/fake-keytab
Binary files differ
diff --git a/tests/data/fake-srvtab b/tests/data/fake-srvtab
new file mode 100644
index 0000000..3c0ec65
--- /dev/null
+++ b/tests/data/fake-srvtab
Binary files differ