X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=t%2Fclone-coderepo.t;h=66eaa03076d996011c8a85260f21bcaf2406b292;hp=947212073c8b2270158ff65366575cb6d9c9a618;hb=68e182a29404407680bee482f99ee24dd9c3c7cb;hpb=b70592ae75f1251c2b116c8bb58a671534c650b4 diff --git a/t/clone-coderepo.t b/t/clone-coderepo.t index 94721207..66eaa030 100644 --- a/t/clone-coderepo.t +++ b/t/clone-coderepo.t @@ -127,26 +127,36 @@ is(PublicInbox::Git::try_cat($dst_pl), "a.git\nb.git\n", like($err, qr/no longer exist.*\bgone\.git\b/s, 'gone.git noted'); } -{ +my $test_puh = sub { + my (@clone_arg) = @_; my $x = [qw(-clone --inbox-config=never --manifest= --project-list= - --objstore= -p), $url, "$tmpdir/dst", + -q -p), $url, "$tmpdir/dst", @clone_arg, '--post-update-hook=./t/clone-coderepo-puh1.sh', '--post-update-hook=./t/clone-coderepo-puh2.sh' ]; my $log = "$tmpdir/puh.log"; my $env = { CLONE_CODEREPO_TEST_OUT => $log }; - ok(run_script($x, $env), 'no-op clone w/ post-update-hook'); - ok(!-e $log, 'hooks not run on no-op'); remove_tree("$tmpdir/dst"); - ok(run_script($x, $env), 'fresh clone w/ post-update-hook'); - ok(-e $log, 'hooks run on fresh clone'); + ok(run_script($x, $env), "fresh clone @clone_arg w/ post-update-hook"); + ok(-e $log, "hooks run on fresh clone @clone_arg"); open my $lh, '<', $log or xbail "open $log: $!"; chomp(my @l = readline($lh)); - is(scalar(@l), 4, '4 lines written by hooks'); + is(scalar(@l), 4, "4 lines written by hooks on @clone_arg"); for my $r (qw(a b)) { is_xdeeply(['uno', 'dos'], [ (map { s/ .+//; $_ } grep(m!/$r\.git\z!, @l)) ], "$r.git hooks ran in order") or diag explain(\@l); } -} + unlink($log) or xbail "unlink: $!"; + ok(run_script($x, $env), "no-op clone @clone_arg w/ post-update-hook"); + ok(!-e $log, "hooks not run on no-op @clone_arg"); +}; +$test_puh->(); +ok(!-e "$tmpdir/dst/objstore", 'no objstore, yet'); + +my $fgrp = 'fgrp'; +$m->{'/a.git'}->{forkgroup} = $m->{'/b.git'}->{forkgroup} = $fgrp; +$set_manifest->($m); +$test_puh->('--objstore='); +ok(-e "$tmpdir/dst/objstore", 'objstore created'); done_testing;