about summary refs log tree commit homepage
path: root/lib/PublicInbox/TestCommon.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2022-10-04 19:12:31 +0000
committerEric Wong <e@80x24.org>2022-10-05 20:24:40 +0000
commite95fbe90accedf079f3ddbd1df8e267e2fe90c2e (patch)
treee84123317f2fcdae5143b8e819dfde52e3de837f /lib/PublicInbox/TestCommon.pm
parent1e7cc8849b56ec96a16fda97921e1612cedc01a3 (diff)
downloadpublic-inbox-e95fbe90accedf079f3ddbd1df8e267e2fe90c2e.tar.gz
This allows us to consolidate our checks for
Plack::Test::ExternalServer and enforce our redirect-disabled
LWP::UserAgent.
Diffstat (limited to 'lib/PublicInbox/TestCommon.pm')
-rw-r--r--lib/PublicInbox/TestCommon.pm14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 333791b4..abf4f364 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -743,11 +743,14 @@ sub create_inbox ($$;@) {
         $ibx;
 }
 
-sub test_httpd ($$;$) {
-        my ($env, $client, $skip) = @_;
-        for (qw(PI_CONFIG TMPDIR)) {
-                $env->{$_} or BAIL_OUT "$_ unset";
-        }
+sub test_httpd ($$;$$) {
+        my ($env, $client, $skip, $cb) = @_;
+        my ($tmpdir, $for_destroy);
+        $env->{TMPDIR} //= do {
+                ($tmpdir, $for_destroy) = tmpdir();
+                $tmpdir;
+        };
+        for (qw(PI_CONFIG)) { $env->{$_} or BAIL_OUT "$_ unset" }
         SKIP: {
                 require_mods(qw(Plack::Test::ExternalServer LWP::UserAgent),
                                 $skip // 1);
@@ -761,6 +764,7 @@ sub test_httpd ($$;$) {
                 $ua->max_redirect(0);
                 Plack::Test::ExternalServer::test_psgi(client => $client,
                                                         ua => $ua);
+                $cb->() if $cb;
                 $td->join('TERM');
                 open my $fh, '<', $err or BAIL_OUT $!;
                 my $e = do { local $/; <$fh> };