t/666-pjotr.t
changeset 4 a29ba54493af
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/t/666-pjotr.t	Fri Jan 20 14:17:34 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.pjotr", workdir => "", verbose => $ENV{TEST_VERBOSE} > 1);
+ok($test, "test environment");
+
+# $ENV{HARNESS_ACTIVE}
+
+my $rc;
+
+$test->run();
+$rc = $? >> 8;
+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
+
+my $filename = "t/test_input.pjotr";
+
+subtest "fake df" => sub {
+   if ($filename) {
+      my $header;
+      open(my $fh, '<' . $filename);
+      while (my $t = <$fh>) {
+         chomp $t;
+         if (!$header) {
+            $header = $t;
+            next;
+         }
+         $t =~ s/^\[(\d+)\]\s+//;
+         my $ret = $1;
+         $test->run(args => "-s", stdin => "$header\n$t");
+
+         $rc = $? >> 8;
+         is($rc, $ret);
+      }
+      close($fh);
+   }
+};
+
+
+done_testing;