--- 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;