]> git.vpit.fr Git - perl/modules/rgit.git/blob - t/21-once.t
Use @ as the escape character. ^ is actually an escape char of cmd.exe
[perl/modules/rgit.git] / t / 21-once.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Cwd qw/abs_path/;
7 use File::Temp qw/tempfile/;
8
9 use Test::More tests => 9 * 5;
10
11 use App::Rgit;
12
13 my @expected = (
14  ([ [ qw/@n @g @w @b @@/ ] ]) x 5
15 );
16
17 local $ENV{GIT_DIR} = 't';
18 local $ENV{GIT_EXEC_PATH} = abs_path('t/bin/git');
19
20 for my $cmd (qw/daemon gui help init version/) {
21  my ($fh, $filename) = tempfile(UNLINK => 1);
22  my $ar = App::Rgit->new(
23   git  => $ENV{GIT_EXEC_PATH},
24   root => $ENV{GIT_DIR},
25   cmd  => $cmd,
26   args => [ abs_path($filename), $cmd, qw/@n @g @w @b @@/ ]
27  );
28  isnt($ar, undef, "once $cmd has a defined object");
29  my $exit = $ar->run;
30  is($exit, 0, "once $cmd returned 0");
31  my @lines = sort split /\n/, do { local $/; <$fh> };
32  is(@lines, 1, "once $cmd visited only one repo");
33  my $r = [ split /\|/, defined $lines[0] ? $lines[0] : '' ];
34  my $e = [ $cmd, qw/@n @g @w @b @@/ ];
35  is($r->[$_], $e->[$_], "once $cmd argument $_ is ok")
36   for 0 .. 5;
37 }