t/666-pjotr.t
changeset 4 a29ba54493af
equal deleted inserted replaced
3:bdbd5e99f85a 4:a29ba54493af
       
     1 use strict;
       
     2 use warnings;
       
     3 
       
     4 use Test::More;
       
     5 use Test::Cmd;
       
     6 
       
     7 my $test = Test::Cmd->new(prog => "blib/script/checkfs.pjotr", workdir => "", verbose => $ENV{TEST_VERBOSE} > 1);
       
     8 ok($test, "test environment");
       
     9 
       
    10 # $ENV{HARNESS_ACTIVE}
       
    11 
       
    12 my $rc;
       
    13 
       
    14 $test->run();
       
    15 $rc = $? >> 8;
       
    16 subtest "run w/o args" => sub {
       
    17     isnt($rc, 0, "exit !0");
       
    18     like($test->stderr, qr/^Usage:/, "Usage");
       
    19 };
       
    20 
       
    21 $test->run(args => "-h");
       
    22 $rc = $? >> 8;
       
    23 subtest "run w/ -h" => sub {
       
    24     is($rc, 0, "exit 0");
       
    25     like($test->stdout, qr/^Usage:.*^Options/ms, "Usage and Options");
       
    26     is($test->stderr, "", "stderr should be empty");
       
    27 };
       
    28 
       
    29 
       
    30 $test->run(args => "-m");
       
    31 $rc = $? >> 8;
       
    32 subtest "run w/ -m" => sub {
       
    33     is($rc, 0, "exit 0");
       
    34     like($test->stdout, qr/^N.*^S.*^O/msi, "looks like manpage");
       
    35     is($test->stderr, "", "stderr should be empty");
       
    36 };
       
    37 
       
    38 # create a fake df
       
    39 
       
    40 my $filename = "t/test_input.pjotr";
       
    41 
       
    42 subtest "fake df" => sub {
       
    43    if ($filename) {
       
    44       my $header;
       
    45       open(my $fh, '<' . $filename);
       
    46       while (my $t = <$fh>) {
       
    47          chomp $t;
       
    48          if (!$header) {
       
    49             $header = $t;
       
    50             next;
       
    51          }
       
    52          $t =~ s/^\[(\d+)\]\s+//;
       
    53          my $ret = $1;
       
    54          $test->run(args => "-s", stdin => "$header\n$t");
       
    55 
       
    56          $rc = $? >> 8;
       
    57          is($rc, $ret);
       
    58       }
       
    59       close($fh);
       
    60    }
       
    61 };
       
    62 
       
    63 
       
    64 done_testing;