#!/usr/bin/perl -w # use Test; use Nagios::Report ; # Each element in this array is a single test. Storing them this way makes # maintenance easy, and should be OK since perl should be pretty functional # before these tests are run. $tests = <<'EOTESTS' ; # Scalar expression # 1==1, $n = Nagios::Report->new(q, [q]) ; ref($n) =~ /Nagios::Report/ # XXXX time2ddhhmmss rounds to nearest 300 sec/5min $ts = Nagios::Report::time2ddhhmmss(59) and $ts eq ' ' $ts = Nagios::Report::time2ddhhmmss(150) and $ts =~ /^5m\s+/ $ts = Nagios::Report::time2ddhhmmss(300) and $ts =~ /^5m\s+/ $ts = Nagios::Report::time2ddhhmmss(3_600) and $ts =~ /^1h\s+/ $ts = Nagios::Report::time2ddhhmmss(3_630) and $ts =~ /^1h\s+/ $ts = Nagios::Report::time2ddhhmmss(86_400) and $ts =~ /^1d\s+/ $ts = Nagios::Report::time2ddhhmmss(86_700) and $ts =~ /^1d 5m\s+/ $ts = Nagios::Report::time2ddhhmmss(86_400 + 3_600) and $ts =~ /^1d 1h\s+/ $ts = Nagios::Report::time2ddhhmmss(86_400 + 3_600 + 300) and $ts =~ /^1d 1h 5m\s+/ $ts = Nagios::Report::time2ddhhmmss(7 * 86_400) and $ts =~ /^1w\s+/ $ts = Nagios::Report::time2ddhhmmss(4 * 7 * 86_400) and $ts =~ /^1m\s+/ # Check the alias $ts = t2hms(59) and $ts eq ' ' $ts = t2hms(150) and $ts =~ /^5m\s+/ $ts = t2hms(300) and $ts =~ /^5m\s+/ $ts = t2hms(3_600) and $ts =~ /^1h\s+/ $ts = t2hms(3_630) and $ts =~ /^1h\s+/ $ts = t2hms(86_400) and $ts =~ /^1d\s+/ $ts = t2hms(86_700) and $ts =~ /^1d 5m\s+/ $ts = t2hms(86_400 + 3_600) and $ts =~ /^1d 1h\s+/ $ts = t2hms(86_400 + 3_600 + 300) and $ts =~ /^1d 1h 5m\s+/ $ts = t2hms(7 * 86_400) and $ts =~ /^1w\s+/ $ts = t2hms(4 * 7 * 86_400) and $ts =~ /^1m\s+/ $ts = t2hms(4 * 7 * 86_400 + 86_400 + 3_600 + 300) and $ts =~ /^1m 1d 1h 5m\s+/ EOTESTS @t = split /\n/, $tests ; @tests = grep !( m<\s*#> or m<^\s*$> ), @t ; plan tests => scalar(@tests) ; # plan tests => scalar(@tests) + 1 ; for ( @tests ) { $sub = eval "sub { $_ }" ; warn "sub { $_ } fails to compile: $@" if $@ ; ok $sub ; 1 ; } { my $data ; sub from_data_handle { my $rep_period = shift @_ ; my @avail_rep = () ; local $/ = undef ; $data = unless $data ; my ($r) = $data =~ /^# $rep_period\n(.*?)^END_OF_FILE_MARKER/sm ; @avail_rep = split /\n/, $r ; @avail_rep ; } } __DATA__ # Test HOST_NAME, TIME_UP_SCHEDULED, PERCENT_TIME_UP_SCHEDULED, PERCENT_KNOWN_TIME_UP_SCHEDULED, TIME_UP_UNSCHEDULED, PERCENT_TIME_UP_UNSCHEDULED, PERCENT_KNOWN_TIME_UP_UNSCHEDULED, TOTAL_TIME_UP, PERCENT_TOTAL_TIME_UP, PERCENT_KNOWN_TIME_UP, TIME_DOWN_SCHEDULED, PERCENT_TIME_DOWN_SCHEDULED, PERCENT_KNOWN_TIME_DOWN_SCHEDULED, TIME_DOWN_UNSCHEDULED, PERCENT_TIME_DOWN_UNSCHEDULED, PERCENT_KNOWN_TIME_DOWN_UNSCHEDULED, TOTAL_TIME_DOWN, PERCENT_TOTAL_TIME_DOWN, PERCENT_KNOWN_TIME_DOWN, TIME_UNREACHABLE_SCHEDULED, PERCENT_TIME_UNREACHABLE_SCHEDULED, PERCENT_KNOWN_TIME_UNREACHABLE_SCHEDULED, TIME_UNREACHABLE_UNSCHEDULED, PERCENT_TIME_UNREACHABLE_UNSCHEDULED, PERCENT_KNOWN_TIME_UNREACHABLE_UNSCHEDULED, TOTAL_TIME_UNREACHABLE, PERCENT_TOTAL_TIME_UNREACHABLE, PERCENT_KNOWN_TIME_UNREACHABLE, TIME_UNDETERMINED_NOT_RUNNING, PERCENT_TIME_UNDETERMINED_NOT_RUNNING, TIME_UNDETERMINED_NO_DATA, PERCENT_TIME_UNDETERMINED_NO_DATA, TOTAL_TIME_UNDETERMINED, PERCENT_TOTAL_TIME_UNDETERMINED "16_Mort_St_Optus_router_PE_interface", 0, 0.000%, 0.000%, 2045127, 100.000%, 100.000%, 2045127, 100.000%, 100.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0, 0.000%, 0, 0.000% "Adelaide_State_Office_DEST_router", 0, 0.000%, 0.000%, 2045127, 100.000%, 100.000%, 2045127, 100.000%, 100.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0, 0.000%, 0, 0.000% "Adelaide_State_Office_Optus_router_PE_interface", 0, 0.000%, 0.000%, 2045127, 100.000%, 100.000%, 2045127, 100.000%, 100.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0.000%, 0, 0.000%, 0, 0.000%, 0, 0.000% "Albany_DEST_router", 0, 0.000%, 0.000%, 2039937, 99.746%, 99.746%, 2039937, 99.746%, 99.746%, 0, 0.000%, 0.000%, 290, 0.014%, 0.014%, 290, 0.014%, 0.014%, 0, 0.000%, 0.000%, 4900, 0.240%, 0.240%, 4900, 0.240%, 0.240%, 0, 0.000%, 0, 0.000%, 0, 0.000% END_OF_FILE_MARKER