Annotation of trango/Net-Telnet-Trango/t/53-network-add_su-ap-su.t, Revision 1.1
1.1 ! andrew 1: #!perl -T
! 2: # $RedRiver: 51-network-add_su-ap.t,v 1.4 2007/02/06 16:52:21 andrew Exp $
! 3:
! 4: use Test::More tests => 20;
! 5: use File::Spec;
! 6:
! 7: BEGIN {
! 8: use_ok( 'Net::Telnet::Trango' );
! 9: }
! 10:
! 11: diag("Testing Net::Telnet::Trango $Net::Telnet::Trango::VERSION, Perl $], $^X");
! 12: diag(" AP tests when adding an SU to an AP");
! 13:
! 14: my $cfg_file = File::Spec->catfile('t', 'tests.cfg');
! 15: my ($cir, $mir) = (128, 256);
! 16:
! 17: SKIP: {
! 18: my $skipped = 19;
! 19: my %cfg;
! 20: if (-e $cfg_file) {
! 21: if (open my $fh, $cfg_file) {
! 22: while (<$fh>) {
! 23: chomp;
! 24: my ($key, $value) = split /\t/, $_, 2;
! 25: $cfg{$key} = $value;
! 26: }
! 27: close $fh;
! 28: }
! 29: }
! 30:
! 31: my $type = 'AP';
! 32: my ($host, $pass, $su, $su_pass, $su_id, $su_mac);
! 33:
! 34: if ($cfg{$type} && $cfg{$type} =~ /^(\d+\.\d+\.\d+.\d+)$/) {
! 35: $host = $1;
! 36: }
! 37:
! 38: skip 'No valid ' . $type . ' in config file', $skipped unless $host;
! 39:
! 40: if ($cfg{$type . '_PASSWD'} && $cfg{$type . '_PASSWD'} =~ /^(.*)$/) {
! 41: $pass = $1;
! 42: }
! 43:
! 44: skip 'No valid ' . $type . '_PASSWD in config file', $skipped unless $pass;
! 45:
! 46: if ($cfg{SU_ID} && $cfg{SU_ID} =~ /^(\d+)$/) {
! 47: $su_id= $1;
! 48: }
! 49:
! 50: skip 'No valid SU_ID in config file', $skipped unless $su_id;
! 51:
! 52: if ($cfg{SU_MAC} && length $cfg{SU_MAC} >= 12 && $cfg{SU_MAC} =~ /^(.*)$/) {
! 53: $su_mac = $1;
! 54: }
! 55:
! 56: skip 'No valid SU_MAC in config file', $skipped unless $su_mac;
! 57:
! 58: $type = 'SU';
! 59: if ($cfg{$type} && $cfg{$type} =~ /^(\d+\.\d+\.\d+.\d+)$/) {
! 60: $su = $1;
! 61: }
! 62:
! 63: skip 'No valid ' . $type . ' in config file', $skipped unless $host;
! 64:
! 65: if ($cfg{$type . '_PASSWD'} && $cfg{$type . '_PASSWD'} =~ /^(.*)$/) {
! 66: $su_pass = $1;
! 67: }
! 68:
! 69: skip 'No valid ' . $type . '_PASSWD in config file', $skipped unless $pass;
! 70:
! 71: my $t;
! 72: ok($t = Net::Telnet::Trango->new(), "Instantiating object");
! 73:
! 74: ok($t->open($host), "Opening connection to $host");
! 75:
! 76: ok($t->is_connected, "connected");
! 77:
! 78: ok($t->login($pass), "Logging in");
! 79:
! 80: ok($t->logged_in, "logged in");
! 81:
! 82: my $sudb;
! 83: if ((!ok($sudb = $t->sudb_view, "Getting sudb"))
! 84: && $t->last_error ) {
! 85: diag('ERR: ' . $t->last_error);
! 86: }
! 87:
! 88: my $in_sudb = 0;
! 89: foreach my $su (@{ $sudb }) {
! 90: if ($su_id == $su->{suid}) {
! 91: if (lc($su_mac) eq lc($su->{mac})) {
! 92: $in_sudb = 1;
! 93: } else {
! 94: $in_sudb = -1;
! 95: diag("Incorrect mac for SUID $su_id");
! 96: diag(" Should be $su_mac");
! 97: diag(" Really is $su->{mac}");
! 98: }
! 99: last;
! 100: }
! 101: }
! 102:
! 103: is($in_sudb, 1, "Correct SU is in SUDB");
! 104:
! 105: my $opmode;
! 106: ok($opmode = $t->opmode, "getting current opmode");
! 107:
! 108: SKIP: {
! 109: skip("already opmode ap", 1) if $opmode->{Opmode} eq 'ap';
! 110:
! 111: if ((! ok($result = $t->opmode('ap y'), "Setting opmode ap y"))
! 112: && $t->last_error ) {
! 113: diag('ERR: ' . $t->last_error);
! 114: }
! 115: }
! 116:
! 117: $opmode = {};
! 118: if ((! ok($opmode = $t->opmode, "getting current opmode"))
! 119: && $t->last_error) {
! 120: diag('ERR: ' . $t->last_error);
! 121: }
! 122:
! 123: is($opmode->{Opmode}, 'ap', "current Opmode ap");
! 124:
! 125: if (! ok($result = $t->save_ss, "Saving systemsetting")
! 126: && $t->last_error ) {
! 127: diag('ERR: ' . $t->last_error);
! 128: }
! 129:
! 130: my $sysinfo;
! 131: if ((!ok($sysinfo = $t->sysinfo, "Getting sysinfo"))
! 132: && $t->last_error ) {
! 133: diag('ERR: ' . $t->last_error);
! 134: }
! 135:
! 136: # XXX This is probably the wrong way to do this, but it should work
! 137: # XXX most of the time.
! 138: my $su_subnet = $sysinfo->{'Subnet Mask'};
! 139: my $su_gateway = $sysinfo->{'Gateway'};
! 140:
! 141: if ( (! ok($t->su_password($su_pass, $su_id), "set SU password"))
! 142: && $t->last_error ) {
! 143: diag('ERR: ' . $t->last_error);
! 144: }
! 145:
! 146: if ( (! ok($t->su_ipconfig($su_id, $su, $su_subnet, $su_gateway),
! 147: "set SU IP"))
! 148: && $t->last_error ) {
! 149: diag('ERR: ' . $t->last_error);
! 150: }
! 151:
! 152: ok($t->bye, "Goodbye");
! 153: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>