diff options
author | Russ Allbery <rra@stanford.edu> | 2007-09-27 03:22:46 +0000 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2007-09-27 03:22:46 +0000 |
commit | e0f6e1222ede4a7545ca995a8aacaae0b591cb9c (patch) | |
tree | 2af9d140d13ee321c6fdb81c4444ca2e0e93c4a3 /tests | |
parent | 7ec47028dbfe6df70d4c07e9546ae1680cf4e91f (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.in | 46 | ||||
-rwxr-xr-x | tests/data/cmd-fake | 13 | ||||
-rw-r--r-- | tests/data/fake-data | bin | 0 -> 62 bytes | |||
-rw-r--r-- | tests/data/fake-keytab | bin | 62 -> 334 bytes | |||
-rw-r--r-- | tests/data/fake-srvtab | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000..92e3caa --- /dev/null +++ b/tests/data/fake-data diff --git a/tests/data/fake-keytab b/tests/data/fake-keytab Binary files differindex 92e3caa..714d9b6 100644 --- a/tests/data/fake-keytab +++ b/tests/data/fake-keytab diff --git a/tests/data/fake-srvtab b/tests/data/fake-srvtab Binary files differnew file mode 100644 index 0000000..3c0ec65 --- /dev/null +++ b/tests/data/fake-srvtab |