diff -r bc2f76c0908a -r bdbd5e99f85a t/010-run.t --- a/t/010-run.t Fri Jan 20 09:13:33 2012 +0100 +++ b/t/010-run.t Fri Jan 20 13:21:49 2012 +0100 @@ -4,7 +4,11 @@ use Test::More; use Test::Cmd; -my $test = Test::Cmd->new(prog => "blib/script/checkfs", workdir => "", verbose => $ENV{TEST_VERBOSE} > 1); +my $test = Test::Cmd->new( + prog => "blib/script/checkfs", + workdir => "", + verbose => $ENV{TEST_VERBOSE} > 1 +); ok($test, "test environment"); # $ENV{HARNESS_ACTIVE} @@ -26,7 +30,6 @@ is($test->stderr, "", "stderr should be empty"); }; - $test->run(args => "-m"); $rc = $? >> 8; subtest "run w/ -m" => sub { @@ -36,6 +39,59 @@ }; # create a fake df +my $head = + "Filesystem 1024-blocks Used Available Capacity Mounted on"; +my @data = ( + { in => "/dev/mapper/jumper-root 7970992 6769920 801696 90% /", r => 2 }, + { in => "tmpfs 1927372 12 1927360 1% /lib/init/rw", r => 0 }, + { in => "varrun 1927372 168 1927204 1% /var/run", r => 0 }, + { in => "varlock 1927372 0 1927372 0% /var/lock", r => 0 }, + { in => "udev 1921416 256 1921160 1% /dev", r => 0 }, + { in => "tmpfs 1927372 40 1927332 1% /dev/shm", r => 0 }, + { + in => "/dev/mapper/jumper-home 30963708 27663468 1727736 95% /home", + r => 2 + }, + { in => "/dev/sda1 235021 35434 187453 16% /boot", r => 0 }, + { in => "/dev/mapper/jumper-jumper 13789092 13701780 0 100% /.o", r => 2 }, + { + in => + "/dev/mapper/jumper-squid 1108684 247408 804956 24% /var/spool/squid", + r => 0 + }, + { + in => "/dev/mapper/jumper-log 2097152 32364 2064788 2% /var/log", + r => 0 + }, + { in => "tmpfs 131072 3568 127504 3% /tmp", r => 0 }, + { + in => "/dev/mapper/jumper-src 10321208 888736 8908184 10% /usr/src", + r => 0 + }, + { in => "tmpfs 0 3568 127504 3% /tmp", r => 3 }, +); +foreach (@data) { + + my $send = $_->{in}; + my $expect = $_->{r}; + my $fs = (split " " => $send)[-1]; + + $test->run(args => $fs, stdin => "$head\n$send"); + my $rc = $? >> 8; + + subtest "filesystem $fs (expect $expect)" => sub { + + is($rc, $expect, "expected $expect") + or diag length($test->stderr) ? "STDERR: " . $test->stderr + : "" . length($test->stdout) ? "STDOUT: " . $test->stdout + : ""; + + if ($expect == 0) { like($test->stdout, qr/FS OK/, "ok $fs") } + elsif ($expect == 1) { like($test->stdout, qr/FS WARN/, "warn $fs") } + elsif ($expect == 2) { like($test->stdout, qr/FS CRIT/, "crit $fs") } + else { like($test->stdout, qr/FS UNKN/, "unknown $fs") } + }; +} done_testing;