diff options
author | Eric Wong <e@80x24.org> | 2023-09-04 10:36:06 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-09-05 03:01:42 +0000 |
commit | 2232ff9a7d99b567618f27380603ca52dd296144 (patch) | |
tree | 253e89dd290e140eff0e6f1dabc5a2fda2cf67b0 | |
parent | 38ed82d426aceb1a185071b5339f21e65e01490a (diff) | |
download | public-inbox-2232ff9a7d99b567618f27380603ca52dd296144.tar.gz |
We'll also ensure the existing `lei' target expands to depend on `+SCM_RIGHTS', and use require_mods in t/lei-import-nntp.t and t/lei.t so they can be skipped when Inline::C and Socket::MsgHdr are missing on OpenBSD.
-rw-r--r-- | lib/PublicInbox/TestCommon.pm | 15 | ||||
-rw-r--r-- | t/lei-import-nntp.t | 4 | ||||
-rw-r--r-- | t/lei.t | 3 | ||||
-rw-r--r-- | t/xap_helper.t | 4 |
4 files changed, 14 insertions, 12 deletions
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 6da993af..a90e89d1 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -134,7 +134,7 @@ sub require_mods { while (my $mod = shift(@mods)) { if ($mod eq 'lei') { require_git(2.6, $maybe ? $maybe : ()); - push @mods, qw(DBD::SQLite Search::Xapian); + push @mods, qw(DBD::SQLite Search::Xapian +SCM_RIGHTS); $mod = 'json'; # fall-through } if ($mod eq 'json') { @@ -155,6 +155,11 @@ sub require_mods { PublicInbox::Search::load_xapian()) { next; } + } elsif ($mod eq '+SCM_RIGHTS') { + if (my $msg = need_scm_rights()) { + push @need, $msg; + next; + } } elsif (index($mod, '||') >= 0) { # "Foo||Bar" my $ok; for my $m (split(/\Q||\E/, $mod)) { @@ -567,13 +572,13 @@ sub ignore_inline_c_missing { grep(!/\bInline\b/, split(/^/m, $_[0]))))); } -sub no_scm_rights () { +sub need_scm_rights () { state $ok = PublicInbox::Spawn->can('send_cmd4') || do { require PublicInbox::Syscall; - PublicInbox::Syscall->can('send_cmd4'); + PublicInbox::Syscall->can('send_cmd4'); # Linux only } || eval { require Socket::MsgHdr; 1 }; return if $ok; - 'Inline::C unconfigured/missing '. + 'need SCM_RIGHTS support: Inline::C unconfigured/missing '. '(mkdir -p ~/.cache/public-inbox/inline-c) OR Socket::MsgHdr missing'; } @@ -601,8 +606,6 @@ SKIP: { $ENV{LANG} = $ENV{LC_ALL} = 'C'; my (undef, $fn, $lineno) = caller(0); my $t = "$fn:$lineno"; - state $msg = no_scm_rights(); - skip $msg, 1 if $msg; $lei_opt = { 1 => \$lei_out, 2 => \$lei_err }; my ($daemon_pid, $for_destroy, $daemon_xrd); my $tmpdir = $test_opt->{tmpdir}; diff --git a/t/lei-import-nntp.t b/t/lei-import-nntp.t index 2c48d973..c3ee06a2 100644 --- a/t/lei-import-nntp.t +++ b/t/lei-import-nntp.t @@ -1,9 +1,9 @@ #!perl -w -# Copyright (C) 2021 all contributors <meta@public-inbox.org> +# Copyright (C) all contributors <meta@public-inbox.org> # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> use strict; use v5.10.1; use PublicInbox::TestCommon; require_git 2.6; -require_mods(qw(json DBD::SQLite Search::Xapian Net::NNTP)); +require_mods(qw(lei json DBD::SQLite Search::Xapian Net::NNTP)); my ($ro_home, $cfg_path) = setup_public_inboxes; my ($tmpdir, $for_destroy) = tmpdir; my $sock = tcp_server; @@ -1,7 +1,8 @@ #!perl -w -# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org> +# Copyright (C) all contributors <meta@public-inbox.org> # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> use strict; use v5.10.1; use PublicInbox::TestCommon; +require_mods 'lei'; use File::Path qw(rmtree); # this only tests the basic help/config/init/completion bits of lei; diff --git a/t/xap_helper.t b/t/xap_helper.t index f4b3581f..0a211329 100644 --- a/t/xap_helper.t +++ b/t/xap_helper.t @@ -3,9 +3,7 @@ # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> use v5.12; use PublicInbox::TestCommon; -require_mods(qw(DBD::SQLite Search::Xapian)); -my $msg = no_scm_rights; -plan(skip_all => $msg) if $msg; # TODO: FIFO support? +require_mods(qw(DBD::SQLite Search::Xapian +SCM_RIGHTS)); # TODO: FIFO support? use PublicInbox::Spawn qw(spawn); use Socket qw(AF_UNIX SOCK_SEQPACKET SOCK_STREAM); require PublicInbox::AutoReap; |