From 88c7c7c26b44ee4c1141fddb628a518b4d4d21a4 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 18 Apr 2022 09:50:03 +0000 Subject: lei: wire up pure Perl sendmsg/recvmsg for Linux users This enables lei-daemon to work without Inline::C nor Socket::MsgHdr installed. Prior to this, only the `lei' client was using the pure Perl implementation. Either C implementation is still marginally faster, however. --- t/lei-daemon.t | 6 +++++- t/lei-externals.t | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 't') diff --git a/t/lei-daemon.t b/t/lei-daemon.t index b60c7ce6..e11105bc 100644 --- a/t/lei-daemon.t +++ b/t/lei-daemon.t @@ -1,5 +1,5 @@ #!perl -w -# Copyright (C) 2020-2021 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ use strict; use v5.10.1; use PublicInbox::TestCommon; use Socket qw(AF_UNIX SOCK_SEQPACKET MSG_EOR pack_sockaddr_un); @@ -8,12 +8,16 @@ test_lei({ daemon_only => 1 }, sub { my $send_cmd = PublicInbox::Spawn->can('send_cmd4') // do { require PublicInbox::CmdIPC4; PublicInbox::CmdIPC4->can('send_cmd4'); + } // do { + require PublicInbox::Syscall; + PublicInbox::Syscall->can('send_cmd4'); }; $send_cmd or BAIL_OUT 'started testing lei-daemon w/o send_cmd4!'; my $sock = "$ENV{XDG_RUNTIME_DIR}/lei/5.seq.sock"; my $err_log = "$ENV{XDG_RUNTIME_DIR}/lei/errors.log"; lei_ok('daemon-pid'); + ignore_inline_c_missing($lei_err); is($lei_err, '', 'no error from daemon-pid'); like($lei_out, qr/\A[0-9]+\n\z/s, 'pid returned') or BAIL_OUT; chomp(my $pid = $lei_out); diff --git a/t/lei-externals.t b/t/lei-externals.t index fed57789..284be1b9 100644 --- a/t/lei-externals.t +++ b/t/lei-externals.t @@ -76,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'); -- cgit v1.2.3-24-ge0c7