about summary refs log tree commit homepage
path: root/t/git.t
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-04-19 23:19:37 +0000
committerEric Wong <e@yhbt.net>2020-04-20 20:18:21 +0000
commit6e07def560b211d9a1a3221862e72b7aeb4a31b3 (patch)
treeb6e3b54f928145b3f1c05bd5b0444f70f7eabd4f /t/git.t
parent47acfe0e9d09e907393465e155e114e8fdc5f5a1 (diff)
downloadpublic-inbox-6e07def560b211d9a1a3221862e72b7aeb4a31b3.tar.gz
Barely noticeable on Linux, but this gives a 1-2% speedup
on a FreeBSD 11.3 VM and lets us use built-in redirects
rather than relying on /bin/sh.
Diffstat (limited to 't/git.t')
-rw-r--r--t/git.t17
1 files changed, 7 insertions, 10 deletions
diff --git a/t/git.t b/t/git.t
index 0936ac5e..b05ac123 100644
--- a/t/git.t
+++ b/t/git.t
@@ -13,9 +13,10 @@ use_ok 'PublicInbox::Git';
 {
         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');
 }
 
@@ -58,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;