about summary refs log tree commit homepage
path: root/t/init.t
diff options
context:
space:
mode:
Diffstat (limited to 't/init.t')
-rw-r--r--t/init.t29
1 files changed, 21 insertions, 8 deletions
diff --git a/t/init.t b/t/init.t
index 6f4c9dce..275192cf 100644
--- a/t/init.t
+++ b/t/init.t
@@ -1,11 +1,12 @@
-# Copyright (C) 2014-2021 all contributors <meta@public-inbox.org>
+#!perl -w
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
-use warnings;
-use Test::More;
+use v5.10.1;
 use PublicInbox::Config;
 use PublicInbox::TestCommon;
 use PublicInbox::Admin;
+use PublicInbox::InboxWritable;
 my ($tmpdir, $for_destroy) = tmpdir();
 sub quiet_fail {
         my ($cmd, $msg) = @_;
@@ -18,7 +19,11 @@ sub quiet_fail {
         my $cfgfile = "$ENV{PI_DIR}/config";
         my $cmd = [ '-init', 'blist', "$tmpdir/blist",
                    qw(http://example.com/blist blist@example.com) ];
+        my $umask = umask(070) // xbail "umask: $!";
         ok(run_script($cmd), 'public-inbox-init OK');
+        umask($umask) // xbail "umask: $!";
+        my $mode = (stat($cfgfile))[2];
+        is(sprintf('0%03o', $mode & 0777), '0604', 'config respects umask');
 
         is(read_indexlevel('blist'), '', 'indexlevel unset by default');
 
@@ -102,7 +107,7 @@ sub quiet_fail {
         umask($umask) // xbail "umask: $!";
         ok(-d "$tmpdir/a/b/c/d", 'directory created');
         my $desc = "$tmpdir/a/b/c/d/description";
-        is(PublicInbox::Inbox::try_cat($desc),
+        is(PublicInbox::IO::try_cat($desc),
                 "public inbox for abcd\@example.com\n", 'description set');
         my $mode = (stat($desc))[2];
         is(sprintf('0%03o', $mode & 0777), '0644',
@@ -116,8 +121,8 @@ sub quiet_fail {
 }
 
 SKIP: {
-        require_mods(qw(DBD::SQLite Search::Xapian), 2);
-        require_git(2.6, 1) or skip "git 2.6+ required", 2;
+        require_mods(qw(DBD::SQLite Xapian), 2);
+        require_git(2.6, 2);
         use_ok 'PublicInbox::Msgmap';
         local $ENV{PI_DIR} = "$tmpdir/.public-inbox/";
         local $ENV{PI_EMERGENCY} = "$tmpdir/.public-inbox/emergency";
@@ -147,7 +152,7 @@ SKIP: {
                 ok(run_script($cmd), "-init -L $lvl");
                 is(read_indexlevel("v2$lvl"), $lvl, "indexlevel set to '$lvl'");
                 my $ibx = PublicInbox::Inbox->new({ inboxdir => $dir });
-                is(PublicInbox::Admin::detect_indexlevel($ibx), $lvl,
+                is(PublicInbox::InboxWritable::detect_indexlevel($ibx), $lvl,
                         'detected expected level w/o config');
                 ok(!$ibx->{-skip_docdata}, 'docdata written by default');
         }
@@ -159,7 +164,7 @@ SKIP: {
                         "$name\@example.com" ];
                 ok(run_script($cmd), "-init -V$v --skip-docdata");
                 my $ibx = PublicInbox::Inbox->new({ inboxdir => $dir });
-                is(PublicInbox::Admin::detect_indexlevel($ibx), 'full',
+                is(PublicInbox::InboxWritable::detect_indexlevel($ibx), 'full',
                         "detected default indexlevel -V$v");
                 ok($ibx->{-skip_docdata}, "docdata skip set -V$v");
                 ok($ibx->search->has_threadid, 'has_threadid flag set on new inbox');
@@ -211,6 +216,14 @@ SKIP: {
         is($n, 13, 'V1 NNTP article numbers skipped via --skip-artnum');
 }
 
+{
+        local $ENV{PI_DIR} = "$tmpdir/.public-inbox/";
+        my $cmd = [ qw(-init -C), "$tmpdir", qw(chdirlist chdirlist),
+                   qw(http://example.com/chdirlist chdirlist@example.com)];
+        ok(run_script($cmd), '-init with -C (chdir)');
+        ok(-d "$tmpdir/chdirlist", '-C processed correctly');
+}
+
 done_testing();
 
 sub read_indexlevel {