X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fgit.t;h=b05ac123bec6a342204726b838a235253799cfb1;hb=e39585ee2bdcbeaab7b6bd33b3568021042d0879;hp=8224969d0661fb7d6707a39ae779613ca38cf5b1;hpb=95bdac7f09c69036efed537a4d03d5bdd2ae4eb6;p=public-inbox.git diff --git a/t/git.t b/t/git.t index 8224969d..b05ac123 100644 --- a/t/git.t +++ b/t/git.t @@ -6,15 +6,17 @@ use Test::More; use PublicInbox::TestCommon; my ($dir, $for_destroy) = tmpdir(); use PublicInbox::Spawn qw(popen_rd); +use PublicInbox::Import; use_ok 'PublicInbox::Git'; { - is(system(qw(git init -q --bare), $dir), 0, 'created git directory'); + PublicInbox::Import::init_bare($dir); my $fi_data = './t/git.fast-import-data'; - ok(-r $fi_data, "fast-import data readable (or run test at top level)"); - local $ENV{GIT_DIR} = $dir; - system("git fast-import --quiet <$fi_data"); + open my $fh, '<', $fi_data or die + "fast-import data readable (or run test at top level: $!"; + my $rdr = { 0 => $fh }; + xsys([qw(git fast-import --quiet)], { GIT_DIR => $dir }, $rdr); is($?, 0, 'fast-import succeeded'); } @@ -57,18 +59,14 @@ use_ok 'PublicInbox::Git'; } if (1) { - my $cmd = [ 'git', "--git-dir=$dir", qw(hash-object -w --stdin) ]; - # need a big file, use the AGPL-3.0 :p my $big_data = './COPYING'; ok(-r $big_data, 'COPYING readable'); my $size = -s $big_data; ok($size > 8192, 'file is big enough'); - - my $buf = do { - local $ENV{GIT_DIR} = $dir; - `git hash-object -w --stdin <$big_data`; - }; + open my $fh, '<', $big_data or die; + my $cmd = [ 'git', "--git-dir=$dir", qw(hash-object -w --stdin) ]; + my $buf = xqx($cmd, { GIT_DIR => $dir }, { 0 => $fh }); is(0, $?, 'hashed object successfully'); chomp $buf; @@ -90,7 +88,7 @@ if (1) { if ('alternates reloaded') { my ($alt, $alt_obj) = tmpdir(); my @cmd = ('git', "--git-dir=$alt", qw(hash-object -w --stdin)); - is(system(qw(git init -q --bare), $alt), 0, 'create alt directory'); + PublicInbox::Import::init_bare($alt); open my $fh, '<', "$alt/config" or die "open failed: $!\n"; my $rd = popen_rd(\@cmd, {}, { 0 => $fh } ); close $fh or die "close failed: $!";