X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Flei-externals.t;h=284be1b9866b838a904fedc2576738e7ce9eb5b4;hb=6dec9bf8c0e1b859703d7a5dfb87052cf4e87846;hp=2045691fa5c155a25e9891efdd7a5c2280c0b19c;hpb=7d2e572aca7297ea2015d2b6e7c71b672521ec82;p=public-inbox.git diff --git a/t/lei-externals.t b/t/lei-externals.t index 2045691f..284be1b9 100644 --- a/t/lei-externals.t +++ b/t/lei-externals.t @@ -3,23 +3,23 @@ # License: AGPL-3.0+ use strict; use v5.10.1; use PublicInbox::TestCommon; use Fcntl qw(SEEK_SET); -use PublicInbox::Spawn qw(which); -use PublicInbox::OnDestroy; require_git 2.6; require_mods(qw(json DBD::SQLite Search::Xapian)); use POSIX qw(WTERMSIG WIFSIGNALED SIGPIPE); -my @onions = qw(http://hjrcffqmbrq6wope.onion/meta/ - http://czquwvybam4bgbro.onion/meta/ - http://ou63pmih66umazou.onion/meta/); +my @onions = map { "http://$_.onion/meta/" } qw( + 4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd + ie5yzdi7fg72h7s4sdcztq5evakq23rdt33mfyfcddc5u3ndnw24ogqd + 7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd); my $test_external_remote = sub { my ($url, $k) = @_; SKIP: { skip "$k unset", 1 if !$url; - state $curl = which('curl'); - $curl or skip 'no curl', 1; - which('torsocks') or skip 'no torsocks', 1 if $url =~ m!\.onion/!; + require_cmd 'curl', 1 or skip 'curl missing', 1; + if ($url =~ m!\.onion/!) { + require_cmd 'torsocks', 1 or skip 'no torsocks', 1; + } my $mid = '20140421094015.GA8962@dcvr.yhbt.net'; my @cmd = ('q', '--only', $url, '-q', "m:$mid"); lei_ok(@cmd, \"query $url"); @@ -49,7 +49,7 @@ SKIP: { ok(WIFSIGNALED($?), "signaled @$out"); is(WTERMSIG($?), SIGPIPE, "got SIGPIPE @$out"); seek($err, 0, 0); - my @err = grep(!m{mkdir .*sun_path\b}, <$err>); + my @err = <$err>; is_deeply(\@err, [], "no errors @$out"); } if (-d $ENV{XDG_RUNTIME_DIR} && -w _) { @@ -57,6 +57,8 @@ SKIP: { chomp(my $pid_after = $lei_out); is($pid_after, $pid_before, 'pid unchanged') or skip 'daemon died', 1; + skip 'not killing persistent lei-daemon', 2 if + $ENV{TEST_LEI_DAEMON_PERSIST_DIR}; lei_ok 'daemon-kill'; my $alive = 1; for (1..100) { @@ -74,6 +76,7 @@ test_lei(sub { my $config_file = "$home/.config/lei/config"; my $store_dir = "$home/.local/share/lei"; lei_ok 'ls-external', \'ls-external on fresh install'; + ignore_inline_c_missing($lei_err); is($lei_out.$lei_err, '', 'ls-external no output, yet'); ok(!-e $config_file && !-e $store_dir, 'nothing created by ls-external'); @@ -93,8 +96,7 @@ test_lei(sub { \'added external'); is($lei_out.$lei_err, '', 'no output'); }); - ok(-s $config_file && -e $store_dir, - 'add-external created config + store'); + ok(-s $config_file, 'add-external created config'); my $lcfg = PublicInbox::Config->new($config_file); $cfg->each_inbox(sub { my ($ibx) = @_; @@ -210,6 +212,8 @@ test_lei(sub { like($lei_out, qr/use boolean prefix/, '--stdin on pipe'); } ok(!lei(qw(q -q --stdin s:use)), "--stdin and argv don't mix"); + like($lei_err, qr/no query allowed.*--stdin/, + '--stdin conflict error message'); for my $fmt (qw(ldjson ndjson jsonl)) { lei_ok('q', '-f', $fmt, 's:use boolean prefix'); @@ -249,6 +253,8 @@ test_lei(sub { } ok(!lei('q', '-o', "$home/mbox", 's:nope'), 'fails if mbox format unspecified'); + like($lei_err, qr/unable to determine mbox/, 'mbox-related message'); + ok(!lei(qw(q --no-local s:see)), '--no-local'); is($? >> 8, 1, 'proper exit code'); like($lei_err, qr/no local or remote.+? to search/, 'no inbox'); @@ -263,10 +269,8 @@ test_lei(sub { } { - opendir my $dh, '.' or BAIL_OUT "opendir(.) $!"; - my $od = PublicInbox::OnDestroy->new($$, sub { - chdir $dh or BAIL_OUT "chdir: $!" - }); + skip 'TEST_LEI_DAEMON_PERSIST_DIR in use', 1 if + $ENV{TEST_LEI_DAEMON_PERSIST_DIR}; my @q = qw(q -o mboxcl2:rel.mboxcl2 bye); lei_ok('-C', $home, @q); is(unlink("$home/rel.mboxcl2"), 1, '-C works before q');