-ok(PublicInbox::Import::run_die($cmd, $env, $rdr), 'v2 compact works');
-$ibx->{mainrepo} = "$tmpdir/v2";
-my $v2w = PublicInbox::V2Writable->new($ibx);
-is($v2w->{partitions}, 1, "only one partition in compacted repo");
+ok(run_script($cmd, $env, $rdr), 'v2 compact works');
+$ibx->{inboxdir} = "$tmpdir/x/v2";
+$ibx->{version} = 2;
+is($ibx->mm->num_highwater, $hwm, 'highwater mark unchanged in v2 inbox');
+
+@xdir = glob("$tmpdir/x/v2/xap*/*");
+foreach (@xdir) {
+ my @st = stat($_);
+ is($st[2] & 07777, -f _ ? 0644 : 0755,
+ 'sharedRepository respected after v2 compact');
+}
+is(((stat("$tmpdir/x/v2/msgmap.sqlite3"))[2]) & 07777, 0644,
+ 'sharedRepository respected for v2 msgmap');
+
+@xdir = (glob("$tmpdir/x/v2/git/*.git/objects/*/*"),
+ glob("$tmpdir/x/v2/git/*.git/objects/pack/*"));
+foreach (@xdir) {
+ my @st = stat($_);
+ is($st[2] & 07777, -f _ ? 0444 : 0755,
+ 'sharedRepository respected after v2 compact');
+}
+my $msgs = $ibx->over->recent({limit => 1000});
+is($msgs->[0]->{mid}, 'a-mid@b', 'message exists in history');
+is(scalar @$msgs, 1, 'only one message in history');
+
+$ibx = undef;
+$err = '';
+$cmd = [ qw(-index -j0 --reindex -c), "$tmpdir/x/v2" ];
+ok(run_script($cmd, undef, $rdr), '--reindex -c');
+like($err, qr/xapian-compact/, 'xapian-compact ran (-c)');
+
+$rdr->{2} = \(my $err2 = '');
+$cmd = [ qw(-index -j0 --reindex -cc), "$tmpdir/x/v2" ];
+ok(run_script($cmd, undef, $rdr), '--reindex -c -c');
+like($err2, qr/xapian-compact/, 'xapian-compact ran (-c -c)');
+ok(($err2 =~ tr/\n/\n/) > ($err =~ tr/\n/\n/), '-compacted twice');