From: Eric Wong Date: Tue, 15 Dec 2020 08:21:24 +0000 (+0000) Subject: tests: more common JSON module loading X-Git-Tag: v1.7.0~1471^2~25 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d42172638f5479f76e73470ad48a679100c3e0d5;p=public-inbox.git tests: more common JSON module loading We'll probably be using JSON more in the future, so make it easier to require in tests --- 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';