about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-12-13 00:50:15 +0000
committerEric Wong <e@80x24.org>2023-12-13 09:01:52 +0000
commit48f0a0148cfa0f1caef53aa2bad4196aac381f20 (patch)
tree3730aa2e3761f77be23321d1e16d01f01b773698
parentce3b046e5f34e48d799118c5607e732a69a884b3 (diff)
downloadpublic-inbox-48f0a0148cfa0f1caef53aa2bad4196aac381f20.tar.gz
And use it in convert-compact.t  This gives us nicer errors for
debugging a problem I noticed on Alpine Linux (tested 3.19.0)
-rw-r--r--lib/PublicInbox/TestCommon.pm8
-rw-r--r--t/convert-compact.t18
-rw-r--r--t/search.t5
3 files changed, 16 insertions, 15 deletions
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 9c413f43..22c50675 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -29,7 +29,7 @@ BEGIN {
                 tcp_host_port test_lei lei lei_ok $lei_out $lei_err $lei_opt
                 test_httpd xbail require_cmd is_xdeeply tail_f
                 ignore_inline_c_missing no_pollerfd no_coredump cfg_new
-                strace strace_inject lsof_pid);
+                strace strace_inject lsof_pid oct_is);
         require Test::More;
         my @methods = grep(!/\W/, @Test::More::EXPORT);
         eval(join('', map { "*$_=\\&Test::More::$_;" } @methods));
@@ -1033,6 +1033,12 @@ sub strace_inject (;$) {
         $cmd
 }
 
+sub oct_is ($$$) {
+        my ($got, $exp, $msg) = @_;
+        @_ = (sprintf('0%03o', $got), sprintf('0%03o', $exp), $msg);
+        goto &is; # tail recursion to get lineno from callers on failure
+}
+
 package PublicInbox::TestCommon::InboxWakeup;
 use strict;
 sub on_inbox_unlock { ${$_[0]}->($_[1]) }
diff --git a/t/convert-compact.t b/t/convert-compact.t
index 1ac3517d..c7b7f77e 100644
--- a/t/convert-compact.t
+++ b/t/convert-compact.t
@@ -35,14 +35,14 @@ EOF
         $im->add($eml) or BAIL_OUT '->add';
 };
 umask(077) or BAIL_OUT "umask: $!";
-is(((stat("$ibx->{inboxdir}/public-inbox"))[2]) & 07777, 0755,
+oct_is(((stat("$ibx->{inboxdir}/public-inbox"))[2]) & 07777, 0755,
         'sharedRepository respected for v1');
-is(((stat("$ibx->{inboxdir}/public-inbox/msgmap.sqlite3"))[2]) & 07777, 0644,
-        'sharedRepository respected for v1 msgmap');
+oct_is(((stat("$ibx->{inboxdir}/public-inbox/msgmap.sqlite3"))[2]) & 07777,
+        0644, 'sharedRepository respected for v1 msgmap');
 my @xdir = glob("$ibx->{inboxdir}/public-inbox/xap*/*");
 foreach (@xdir) {
         my @st = stat($_);
-        is($st[2] & 07777, -f _ ? 0644 : 0755,
+        oct_is($st[2] & 07777, -f _ ? 0644 : 0755,
                 'sharedRepository respected on file after convert');
 }
 
@@ -55,7 +55,7 @@ ok(run_script($cmd, undef, $rdr), 'v1 compact works');
 
 @xdir = glob("$ibx->{inboxdir}/public-inbox/xap*");
 is(scalar(@xdir), 1, 'got one xapian directory after compact');
-is(((stat($xdir[0]))[2]) & 07777, 0755,
+oct_is(((stat($xdir[0]))[2]) & 07777, 0755,
         'sharedRepository respected on v1 compact');
 
 my $hwm = do {
@@ -73,7 +73,7 @@ ok(run_script($cmd, undef, $rdr), 'convert works');
 @xdir = glob("$tmpdir/x/v2/xap*/*");
 foreach (@xdir) {
         my @st = stat($_);
-        is($st[2] & 07777, -f _ ? 0644 : 0755,
+        oct_is($st[2] & 07777, -f _ ? 0644 : 0755,
                 'sharedRepository respected after convert');
 }
 
@@ -87,17 +87,17 @@ 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,
+        oct_is($st[2] & 07777, -f _ ? 0644 : 0755,
                 'sharedRepository respected after v2 compact');
 }
-is(((stat("$tmpdir/x/v2/msgmap.sqlite3"))[2]) & 07777, 0644,
+oct_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,
+        oct_is($st[2] & 07777, -f _ ? 0444 : 0755,
                 'sharedRepository respected after v2 compact');
 }
 my $msgs = $ibx->over->recent({limit => 1000});
diff --git a/t/search.t b/t/search.t
index 282ae586..9fda6694 100644
--- a/t/search.t
+++ b/t/search.t
@@ -34,11 +34,6 @@ my $rw_commit = sub {
         $ibx->search->reopen;
 };
 
-sub oct_is ($$$) {
-        my ($got, $exp, $msg) = @_;
-        is(sprintf('0%03o', $got), sprintf('0%03o', $exp), $msg);
-}
-
 {
         # git repository perms
         use_ok 'PublicInbox::Umask';