* [PATCH 6/6] t/cgi.t: remove more redundant tests
2019-01-04 13:10 7% [PATCH 0/6] t/cgi.t: test speedups and cleanups Eric Wong
@ 2019-01-04 13:10 6% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2019-01-04 13:10 UTC (permalink / raw)
To: meta
Most of these test cases are in t/plack.t, already; and that
runs much faster. Just ensure the slashy corner case and search
stuff works. While we're at it, avoid using the
public-inbox-index command and just use the internal API to
index.
---
t/cgi.t | 36 +++++++++---------------------------
1 file changed, 9 insertions(+), 27 deletions(-)
diff --git a/t/cgi.t b/t/cgi.t
index e705cd7..aedd79e 100644
--- a/t/cgi.t
+++ b/t/cgi.t
@@ -12,7 +12,6 @@ eval { require IPC::Run };
plan skip_all => "missing IPC::Run for t/cgi.t" if $@;
use constant CGI => "blib/script/public-inbox.cgi";
-my $index = "blib/script/public-inbox-index";
my $tmpdir = tempdir('pi-cgi-XXXXXX', TMPDIR => 1, CLEANUP => 1);
my $home = "$tmpdir/pi-home";
my $pi_home = "$home/.public-inbox";
@@ -77,14 +76,9 @@ Me wrote:
what?
EOF
$im->add($reply);
- $im->done;
-}
-# message-id pages
-{
- local $ENV{HOME} = $home;
my $slashy_mid = 'slashy/asdf@example.com';
- my $reply = Email::MIME->new(<<EOF);
+ my $slashy = Email::MIME->new(<<EOF);
From: You <you\@example.com>
To: Me <me\@example.com>
Cc: $addr
@@ -94,30 +88,12 @@ Date: Thu, 01 Jan 1970 00:00:01 +0000
slashy
EOF
- $im->add($reply);
+ $im->add($slashy);
$im->done;
my $res = cgi_run("/test/slashy/asdf\@example.com/raw");
like($res->{body}, qr/Message-Id: <\Q$slashy_mid\E>/,
"slashy mid raw hit");
-
- $res = cgi_run("/test/blahblah\@example.com/raw");
- like($res->{body}, qr/Message-Id: <blahblah\@example\.com>/,
- "mid raw hit");
-
- $res = cgi_run("/test/blahblah\@example.com/");
- like($res->{body}, qr/\A<html>/, "mid html hit");
- like($res->{head}, qr/Status: 200 OK/, "200 response");
-
- $res = cgi_run("/test/blahblah\@example.com/f/");
- like($res->{head}, qr/Status: 301 Moved/, "301 response");
- like($res->{head},
- qr!^Location: http://[^/]+/test/blahblah\@example\.com/\r\n!ms,
- '301 redirect location');
-
- $res = cgi_run("/test/new.html");
- like($res->{body}, qr/slashy%2Fasdf\@example\.com/,
- "slashy URL generated correctly");
}
# retrieve thread as an mbox
@@ -126,7 +102,13 @@ EOF
my $path = "/test/blahblah\@example.com/t.mbox.gz";
my $res = cgi_run($path);
like($res->{head}, qr/^Status: 501 /, "search not-yet-enabled");
- my $indexed = system($index, $maindir) == 0;
+ my $indexed;
+ eval {
+ require PublicInbox::SearchIdx;
+ my $s = PublicInbox::SearchIdx->new($maindir, 1);
+ $s->index_sync;
+ $indexed = 1;
+ };
if ($indexed) {
$res = cgi_run($path);
like($res->{head}, qr/^Status: 200 /, "search returned mbox");
--
EW
^ permalink raw reply related [relevance 6%]
* [PATCH 0/6] t/cgi.t: test speedups and cleanups
@ 2019-01-04 13:10 7% Eric Wong
2019-01-04 13:10 6% ` [PATCH 6/6] t/cgi.t: remove more redundant tests Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2019-01-04 13:10 UTC (permalink / raw)
To: meta
While we relied on CGI.pm early in the project, we've moved onto PSGI
and relied on PSGI for providing CGI compatibility. Thus, most of our
CGI-based tests are redundant and Perl startup overhead is painful.
On my system, this cuts the t/cgi.t from 4.4s to 1.8s for a nice
improvement. Moving some tests to t/plack.t did not increase runtimes
in a meaningful way.
Eric Wong (6):
t/cgi.t: eliminate some cruft and unnecessary tests
t/cgi.t: remove redundant redirect check
t/cgi.t: remove atom.xml test
t/cgi.t: move dumb HTTP git clone/fetch tests to plack.t
t/cgi.t: move expected failure tests to t/plack.t
t/cgi.t: remove more redundant tests
t/cgi.t | 105 ++++++++----------------------------------------------
t/plack.t | 43 ++++++++++++++++++++--
2 files changed, 54 insertions(+), 94 deletions(-)
--
EW
^ permalink raw reply [relevance 7%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2019-01-04 13:10 7% [PATCH 0/6] t/cgi.t: test speedups and cleanups Eric Wong
2019-01-04 13:10 6% ` [PATCH 6/6] t/cgi.t: remove more redundant tests Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).