]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/init.t
test_common: require_mods bundles
[public-inbox.git] / t / init.t
index a5a9debc6453dd799ebc1b312101df423e14ec45..d46bef234b2f2d52376cc7a35c0bf2394371b75e 100644 (file)
--- a/t/init.t
+++ b/t/init.t
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2014-2021 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use warnings;
@@ -59,10 +59,22 @@ sub quiet_fail {
        like($err, qr/`\\n' not allowed in `/s, 'reported \\n');
        is_deeply([glob("$tmpdir/.public-inbox/pi-init-*")], [],
                'no junk files left behind');
+
+       # "git init" does this, too
+       $cmd = [ '-init', 'deep-non-existent', "$tmpdir/a/b/c/d",
+                  qw(http://example.com/abcd abcd@example.com) ];
+       $err = '';
+       ok(run_script($cmd, $env, $rdr), 'initializes non-existent hierarchy');
+       ok(-d "$tmpdir/a/b/c/d", 'directory created');
+       open my $fh, '>', "$tmpdir/d" or BAIL_OUT "open: $!";
+       close $fh;
+       $cmd = [ '-init', 'd-f-conflict', "$tmpdir/d/f/conflict",
+                  qw(http://example.com/conflict onflict@example.com) ];
+       ok(!run_script($cmd, $env, $rdr), 'fails on D/F conflict');
 }
 
 SKIP: {
-       require_mods(qw(DBD::SQLite Search::Xapian::WritableDatabase), 2);
+       require_mods(qw(DBD::SQLite Search::Xapian), 2);
        require_git(2.6, 1) or skip "git 2.6+ required", 2;
        use_ok 'PublicInbox::Msgmap';
        local $ENV{PI_DIR} = "$tmpdir/.public-inbox/";