From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 759171FA19 for ; Tue, 15 Dec 2020 11:47:23 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [RFC 6/7] tests: more common JSON module loading Date: Tue, 15 Dec 2020 11:47:21 +0000 Message-Id: <20201215114722.27400-7-e@80x24.org> In-Reply-To: <20201215114722.27400-1-e@80x24.org> References: <20201215114722.27400-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We'll probably be using JSON more in the future, so make it easier to require in tests --- lib/PublicInbox/ManifestJsGz.pm | 2 +- lib/PublicInbox/TestCommon.pm | 4 ++++ t/extsearch.t | 3 +-- t/lei.t | 3 +-- t/www_listing.t | 8 +++----- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/PublicInbox/ManifestJsGz.pm b/lib/PublicInbox/ManifestJsGz.pm index 6d5b57ee..33df020a 100644 --- a/lib/PublicInbox/ManifestJsGz.pm +++ b/lib/PublicInbox/ManifestJsGz.pm @@ -11,7 +11,7 @@ use PublicInbox::Config; use IO::Compress::Gzip qw(gzip); use HTTP::Date qw(time2str); -our $json = PublicInbox::Config::json(); +my $json = PublicInbox::Config::json(); # called by WwwListing sub url_regexp { diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 299b9c6a..2116575b 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -75,6 +75,10 @@ sub require_mods { my $maybe = pop @mods if $mods[-1] =~ /\A[0-9]+\z/; my @need; while (my $mod = shift(@mods)) { + if ($mod eq 'json') { + $mod = 'Cpanel::JSON::XS||JSON::MaybeXS||'. + 'JSON||JSON::PP' + } if ($mod eq 'Search::Xapian') { if (eval { require PublicInbox::Search } && PublicInbox::Search::load_xapian()) { diff --git a/t/extsearch.t b/t/extsearch.t index fb31b0ab..ffbc10e2 100644 --- a/t/extsearch.t +++ b/t/extsearch.t @@ -8,9 +8,8 @@ use PublicInbox::Config; use PublicInbox::Search; use PublicInbox::InboxWritable; use Fcntl qw(:seek); -my $json = PublicInbox::Config::json() or plan skip_all => 'JSON missing'; require_git(2.6); -require_mods(qw(DBD::SQLite Search::Xapian)); +require_mods(qw(json DBD::SQLite Search::Xapian)); use_ok 'PublicInbox::ExtSearch'; use_ok 'PublicInbox::ExtSearchIdx'; use_ok 'PublicInbox::OverIdx'; diff --git a/t/lei.t b/t/lei.t index feee9270..02f21322 100644 --- a/t/lei.t +++ b/t/lei.t @@ -6,8 +6,7 @@ use v5.10.1; use Test::More; use PublicInbox::TestCommon; use PublicInbox::Config; -my $json = PublicInbox::Config::json() or plan skip_all => 'JSON missing'; -require_mods(qw(DBD::SQLite Search::Xapian)); +require_mods(qw(json DBD::SQLite Search::Xapian)); my ($home, $for_destroy) = tmpdir(); my $opt = { 1 => \(my $out = ''), 2 => \(my $err = '') }; diff --git a/t/www_listing.t b/t/www_listing.t index 63613371..94c1e5bb 100644 --- a/t/www_listing.t +++ b/t/www_listing.t @@ -7,14 +7,12 @@ use Test::More; use PublicInbox::Spawn qw(which); use PublicInbox::TestCommon; use PublicInbox::Import; -require_mods(qw(URI::Escape Plack::Builder Digest::SHA +require_mods(qw(json URI::Escape Plack::Builder Digest::SHA IO::Compress::Gzip IO::Uncompress::Gunzip HTTP::Tiny)); require PublicInbox::WwwListing; require PublicInbox::ManifestJsGz; -my $json = do { - no warnings 'once'; - $PublicInbox::ManifestJsGz::json; -} or plan skip_all => "JSON module missing"; +use PublicInbox::Config; +my $json = PublicInbox::Config::json(); use_ok 'PublicInbox::Git';