diff options
Diffstat (limited to 'perl/t')
-rwxr-xr-x | perl/t/keytab.t | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/perl/t/keytab.t b/perl/t/keytab.t index 0dd6bc3..bb6b048 100755 --- a/perl/t/keytab.t +++ b/perl/t/keytab.t @@ -4,12 +4,12 @@ # t/keytab.t -- Tests for the keytab object implementation. # # Written by Russ Allbery <rra@stanford.edu> -# Copyright 2007 Board of Trustees, Leland Stanford Jr. University +# Copyright 2007, 2008 Board of Trustees, Leland Stanford Jr. University # # See LICENSE for licensing terms. use POSIX qw(strftime); -use Test::More tests => 217; +use Test::More tests => 223; use Wallet::Config; use Wallet::Object::Keytab; @@ -478,7 +478,7 @@ EOO # Tests for kaserver synchronization support. SKIP: { - skip 'no keytab configuration', 100 unless -f 't/data/test.keytab'; + skip 'no keytab configuration', 106 unless -f 't/data/test.keytab'; # Test the principal mapping. We can do this without having a kaserver # configuration. We only need a basic keytab object configuration. Do @@ -569,9 +569,22 @@ $date add kaserver to attribute sync by $user from $host EOO is ($one->history, $history, ' and history is correct for attributes'); + is ($one->destroy (@trace), undef, 'Destroying wallet/one fails'); + is ($one->error, 'kaserver synchronization not configured', + ' because kaserver support is not configured'); + is ($one->attr ('sync', [], @trace), 1, + ' but removing the kaserver sync attribute works'); + is ($one->destroy (@trace),1, ' and then destroying wallet/one works'); + $history .= <<"EOO"; +$date remove kaserver from attribute sync + by $user from $host +$date destroy + by $user from $host +EOO # Set up our configuration. - skip 'no AFS kaserver configuration', 32 unless -f 't/data/test.srvtab'; + skip 'no AFS kaserver configuration', 34 unless -f 't/data/test.srvtab'; + skip 'no kaserver support', 34 unless -x '../kasetkey/kasetkey'; $Wallet::Config::KEYTAB_FILE = 't/data/test.keytab'; $Wallet::Config::KEYTAB_PRINCIPAL = contents ('t/data/test.principal'); $Wallet::Config::KEYTAB_REALM = contents ('t/data/test.realm'); @@ -580,6 +593,14 @@ EOO my $realm = $Wallet::Config::KEYTAB_REALM; my $k5 = "wallet/one\@$realm"; + # Recreate and reconfigure the object. + $one = eval { + Wallet::Object::Keytab->create ('keytab', 'wallet/one', $dbh, @trace) + }; + ok (defined ($one), 'Creating wallet/one succeeds'); + is ($one->attr ('sync', [ 'kaserver' ], @trace), 1, + ' and setting the kaserver sync attribute works'); + # Finally, we can test. is ($one->get (@trace), undef, 'Get without configuration fails'); is ($one->error, 'kaserver synchronization not configured', @@ -661,6 +682,10 @@ EOO # Check that history is still correct. $history .= <<"EOO"; +$date create + by $user from $host +$date add kaserver to attribute sync + by $user from $host $date get by $user from $host $date remove kaserver from attribute sync @@ -704,7 +729,11 @@ SKIP: { my $one = eval { Wallet::Object::Keytab->create ('keytab', 'wallet/one', $dbh, @trace) }; - ok (defined ($one), 'Creating wallet/one succeeds'); + if (defined ($one)) { + ok (1, 'Creating wallet/one succeeds'); + } else { + is ($@, '', 'Creating wallet/one succeeds'); + } my $keytab = $one->get (@trace); ok (defined ($keytab), ' and retrieving the keytab works'); my @enctypes = grep { $_ ne 'UNKNOWN' } enctypes ($keytab); |