--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/t/666-maik.t Fri Jan 20 14:50:20 2012 +0100
@@ -0,0 +1,64 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Cmd;
+
+my $test = Test::Cmd->new(prog => "blib/script/checkfs.maik", workdir => "", verbose => $ENV{TEST_VERBOSE} > 1);
+ok($test, "test environment");
+
+# $ENV{HARNESS_ACTIVE}
+
+my $rc;
+
+$test->run();
+$rc = $? >> 8; # shifts the higher byte from return
+subtest "run w/o args" => sub {
+ isnt($rc, 0, "exit !0");
+ like($test->stderr, qr/^Usage:/, "Usage");
+};
+
+$test->run(args => "-h");
+$rc = $? >> 8;
+subtest "run w/ -h" => sub {
+ is($rc, 0, "exit 0");
+ like($test->stdout, qr/^Usage:.*^Options/ms, "Usage and Options");
+ is($test->stderr, "", "stderr should be empty");
+};
+
+
+$test->run(args => "-m");
+$rc = $? >> 8;
+subtest "run w/ -m" => sub {
+ is($rc, 0, "exit 0");
+ like($test->stdout, qr/^N.*^S.*^O/msi, "looks like manpage");
+ is($test->stderr, "", "stderr should be empty");
+};
+
+# create a fake df
+
+$test->run(args => "-i t/df.ok /");
+$rc = $? >> 8;
+subtest "run w/ -i df.ok /" => sub {
+ is($rc, 0, "exit 0");
+ like($test->stdout, qr/^FS OK/, "OK test looks like expected");
+ is($test->stderr, "", "stderr should be empty");
+};
+
+$test->run(args => "-i t/df.crit /");
+$rc = $? >> 8;
+subtest "run w/ -i t/df.crit /" => sub {
+ is($rc, 2, "exit 2");
+ like($test->stdout, qr/^FS CRIT/, "CRIT test looks like expected");
+ is($test->stderr, "", "stderr should be empty");
+};
+
+$test->run(args => "-i t/df.broken /");
+$rc = $? >> 8;
+subtest "run w/ -i t/df.broken /" => sub {
+ is($rc, 3, "exit 3");
+ like($test->stdout, qr/^FS UNKNOWN/, "UNKNOWN looks as expected");
+ is($test->stderr, "", "stderr should be empty");
+};
+
+done_testing;