]> Sergey Matveev's repositories - public-inbox.git/commitdiff
tests: use File::Temp->newdir instead of tempdir()
authorEric Wong <e@80x24.org>
Sun, 24 Nov 2019 00:22:34 +0000 (00:22 +0000)
committerEric Wong <e@80x24.org>
Sun, 24 Nov 2019 21:46:55 +0000 (21:46 +0000)
We'll also introduce a tmpdir() API to give tempdirs
consistent names.

57 files changed:
t/admin.t
t/altid.t
t/altid_v2.t
t/cgi.t
t/common.perl
t/config.t
t/convert-compact.t
t/edit.t
t/emergency.t
t/feed.t
t/filter_rubylang.t
t/git-http-backend.t
t/git.t
t/html_index.t
t/httpd-corner.t
t/httpd-https.t
t/httpd-unix.t
t/httpd.t
t/import.t
t/indexlevels-mirror.t
t/init.t
t/mda.t
t/mda_filter_rubylang.t
t/msgmap.t
t/nntpd-tls.t
t/nntpd-validate.t
t/nntpd.t
t/nulsubject.t
t/over.t
t/perf-nntpd.t
t/plack.t
t/psgi_attach.t
t/psgi_bad_mids.t
t/psgi_mount.t
t/psgi_multipart_not.t
t/psgi_scan_all.t
t/psgi_search.t
t/psgi_text.t
t/psgi_v2.t
t/purge.t
t/replace.t
t/search-thr-index.t
t/search.t
t/solver_git.t
t/spamcheck_spamc.t
t/v1-add-remove-add.t
t/v1reindex.t
t/v2-add-remove-add.t
t/v2mda.t
t/v2mirror.t
t/v2reindex.t
t/v2writable.t
t/watch_filter_rubylang.t
t/watch_maildir.t
t/watch_maildir_v2.t
t/www_listing.t
t/xcpdb-reshard.t

index 0024df1516c2fd0ad8401abd5dc7c7c41e503634..6458982bd662dccee6b241f86996f42b37d3d8fe 100644 (file)
--- a/t/admin.t
+++ b/t/admin.t
@@ -3,9 +3,9 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw(tempdir);
+require './t/common.perl';
 use_ok 'PublicInbox::Admin', qw(resolve_repo_dir);
-my $tmpdir = tempdir('pi-admin.XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/v1";
 my $v2_dir = "$tmpdir/v2";
 my ($res, $err, $v);
index 4ab004c4d8e8fc2ec8e30b49c50a8cf77619e8d3..86e7f9dec30b442327cede6f9eb1a99c3362eb52 100644 (file)
--- a/t/altid.t
+++ b/t/altid.t
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
+require './t/common.perl';
 foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
        eval "require $mod";
        plan skip_all => "$mod missing for altid.t" if $@;
@@ -13,7 +13,7 @@ use_ok 'PublicInbox::Msgmap';
 use_ok 'PublicInbox::SearchIdx';
 use_ok 'PublicInbox::Import';
 use_ok 'PublicInbox::Inbox';
-my $tmpdir = tempdir('pi-altid-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/a.git";
 my $alt_file = "$tmpdir/another-nntp.sqlite3";
 my $altid = [ "serial:gmane:file=$alt_file" ];
index 2c1d8616cae3d051085d78316640abb94785c30c..9e152fc485ea8ea4a7b3431f20e029c6faee5e94 100644 (file)
@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 require './t/common.perl';
 require_git(2.6);
 foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
@@ -13,7 +12,7 @@ foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
 
 use_ok 'PublicInbox::V2Writable';
 use_ok 'PublicInbox::Inbox';
-my $tmpdir = tempdir('pi-altidv2-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $inboxdir = "$tmpdir/inbox";
 my $full = "$tmpdir/inbox/another-nntp.sqlite3";
 my $altid = [ 'serial:gmane:file=another-nntp.sqlite3' ];
diff --git a/t/cgi.t b/t/cgi.t
index 3c09ecd619f6214379a3cb5f7bc6aa63b514b8de..62cea49967d7fe0f9866eac0b15a803e929e614e 100644 (file)
--- a/t/cgi.t
+++ b/t/cgi.t
@@ -6,9 +6,8 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
 require './t/common.perl';
-my $tmpdir = tempdir('pi-cgi-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $home = "$tmpdir/pi-home";
 my $pi_home = "$home/.public-inbox";
 my $pi_config = "$pi_home/config";
index 2126a76106e94e4c5abebf9ceca1096c949e9184..0ff5de4a7161d97bd1ad6b8df715084ce6c3c7d6 100644 (file)
@@ -7,6 +7,16 @@ use strict;
 use warnings;
 use IO::Socket::INET;
 
+sub tmpdir (;$) {
+       my ($base) = @_;
+       require File::Temp;
+       unless (defined $base) {
+               ($base) = ($0 =~ m!\b([^/]+)\.[^\.]+\z!);
+       }
+       my $tmpdir = File::Temp->newdir("pi-$base-$$-XXXXXX", TMPDIR => 1);
+       ($tmpdir->dirname, $tmpdir);
+}
+
 sub tcp_server () {
        IO::Socket::INET->new(
                LocalAddr => '127.0.0.1',
index 0866f264e151bffcabda1f9d1bb9055bdc48d33f..ade2e796abe9f4209b3b30a1897512a5f7fb3c2d 100644 (file)
@@ -4,8 +4,8 @@ use strict;
 use warnings;
 use Test::More;
 use PublicInbox::Config;
-use File::Temp qw/tempdir/;
-my $tmpdir = tempdir('pi-config-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 
 {
        is(system(qw(git init -q --bare), $tmpdir), 0, "git init successful");
index 0661ed1416f42dd93937283adb35551a65d33601..b8dc5ed515e844dd488e9405edeea6c95f00e4f5 100644 (file)
@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 use PublicInbox::MIME;
 use PublicInbox::Spawn qw(which);
 require './t/common.perl';
@@ -18,7 +17,7 @@ which('xapian-compact') or
 
 use_ok 'PublicInbox::V2Writable';
 use PublicInbox::Import;
-my $tmpdir = tempdir('convert-compact-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $ibx = {
        inboxdir => "$tmpdir/v1",
        name => 'test-v1',
index 09e0cdddf4cb7e0c8bd0c4b4c364008f2282dd92..02df6cda68e3d75f3899becc227b62c1935a4d11 100644 (file)
--- a/t/edit.t
+++ b/t/edit.t
@@ -4,7 +4,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 require './t/common.perl';
 require_git(2.6);
 require PublicInbox::Inbox;
@@ -18,7 +17,7 @@ foreach my $mod (@mods) {
        plan skip_all => "missing $mod for $0" if $@;
 };
 
-my $tmpdir = tempdir('pi-edit-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $inboxdir = "$tmpdir/v2";
 my $ibx = PublicInbox::Inbox->new({
        inboxdir => $inboxdir,
index c28826a07942a835bc26d10482395199eb5d86ca..d6c7b6d588b1eac2d3e87c244c20f02a7bc3fe19 100644 (file)
@@ -3,8 +3,8 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
-my $tmpdir = tempdir('emergency-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 use_ok 'PublicInbox::Emergency';
 
 {
index 93da37179f2ccef749458f79aee21ae1dcb7814e..daf97a7253a5b37afa3e8fc3019213cb78aaf910 100644 (file)
--- a/t/feed.t
+++ b/t/feed.t
@@ -9,7 +9,6 @@ use PublicInbox::Git;
 use PublicInbox::Import;
 use PublicInbox::Config;
 use PublicInbox::Inbox;
-use File::Temp qw/tempdir/;
 my $have_xml_feed = eval { require XML::Feed; 1 };
 require './t/common.perl';
 
@@ -24,7 +23,7 @@ sub string_feed {
        $str;
 }
 
-my $tmpdir = tempdir('pi-feed-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/gittest";
 my $ibx = PublicInbox::Inbox->new({
        address => 'test@example',
index 7b1da11cddf7ed55f441d23b1428d7179c03f286..337539254fd841b166cff1be73d6ef71c108c39c 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
+require './t/common.perl';
 use_ok 'PublicInbox::Filter::RubyLang';
 
 my $f = PublicInbox::Filter::RubyLang->new;
@@ -26,8 +26,7 @@ SKIP: {
        eval 'require DBD::SQLite';
        skip 'DBD::SQLite missing for altid mapping', 4 if $@;
        use_ok 'PublicInbox::Inbox';
-       my $git_dir = tempdir('pi-filter_rubylang-XXXXXX',
-                               TMPDIR => 1, CLEANUP => 1);
+       my ($git_dir, $for_destroy) = tmpdir();
        is(mkdir("$git_dir/public-inbox"), 1, "created public-inbox dir");
        my $altid = [ "serial:ruby-core:file=msgmap.sqlite3" ];
        my $ibx = PublicInbox::Inbox->new({ inboxdir => $git_dir,
index c4dc09a1009a77519f3db5e92d630ded310e2d13..a927d89ee272b63a22b4eb937e67479b58d0694e 100644 (file)
@@ -6,8 +6,8 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 use POSIX qw(setsid);
+require './t/common.perl';
 
 my $git_dir = $ENV{GIANT_GIT_DIR};
 plan 'skip_all' => 'GIANT_GIT_DIR not defined' unless $git_dir;
@@ -17,9 +17,8 @@ foreach my $mod (qw(BSD::Resource
        eval "require $mod";
        plan skip_all => "$mod missing for git-http-backend.t" if $@;
 }
-require './t/common.perl';
 my $psgi = "./t/git-http-backend.psgi";
-my $tmpdir = tempdir('pi-git-http-backend-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
 my $sock = tcp_server();
diff --git a/t/git.t b/t/git.t
index a496f851c3219033ff5524b9163d6d49f033cfb3..cc4fc59146c73b6c6171ce2ec1791321e1c253e0 100644 (file)
--- a/t/git.t
+++ b/t/git.t
@@ -3,8 +3,8 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
-my $dir = tempdir('pi-git-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($dir, $for_destroy) = tmpdir();
 use PublicInbox::Spawn qw(popen_rd);
 
 use_ok 'PublicInbox::Git';
@@ -67,7 +67,7 @@ if (1) {
 }
 
 if ('alternates reloaded') {
-       my $alt = tempdir('pi-git-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+       my ($alt, $alt_obj) = tmpdir();
        my @cmd = ('git', "--git-dir=$alt", qw(hash-object -w --stdin));
        is(system(qw(git init -q --bare), $alt), 0, 'create alt directory');
        open my $fh, '<', "$alt/config" or die "open failed: $!\n";
index 2f4b4d1b71747b2b42227677f46dc1f072c540aa..51ea9a25fb4ed6bb876154b80b416ea43d55a33f 100644 (file)
@@ -8,8 +8,8 @@ use PublicInbox::Feed;
 use PublicInbox::Git;
 use PublicInbox::Import;
 use PublicInbox::Inbox;
-use File::Temp qw/tempdir/;
-my $tmpdir = tempdir('pi-http-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/gittest";
 my $ibx = PublicInbox::Inbox->new({
        address => 'test@example',
index eca77d7fc6dd0f9e600f736d1ef6e534400f67a5..551af2b21526c822e7f479186d668d4ed380be85 100644 (file)
@@ -14,14 +14,13 @@ foreach my $mod (qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status)) {
 }
 
 use Digest::SHA qw(sha1_hex);
-use File::Temp qw/tempdir/;
 use IO::Socket;
 use IO::Socket::UNIX;
 use Fcntl qw(:seek);
 use Socket qw(IPPROTO_TCP TCP_NODELAY SOL_SOCKET);
 use POSIX qw(mkfifo);
 require './t/common.perl';
-my $tmpdir = tempdir('httpd-corner-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $fifo = "$tmpdir/fifo";
 ok(defined mkfifo($fifo, 0777), 'created FIFO');
 my $err = "$tmpdir/stderr.log";
index 81a111088bbcc3ca34eb77a16f443053ec793e82..de74c20ee331e3b61cfc0db6da4100f5d068e97e 100644 (file)
@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw(tempdir);
 use Socket qw(SOCK_STREAM IPPROTO_TCP SOL_SOCKET);
 # IO::Poll is part of the standard library, but distros may split them off...
 foreach my $mod (qw(IO::Socket::SSL IO::Poll)) {
@@ -20,7 +19,7 @@ use_ok 'PublicInbox::TLS';
 use_ok 'IO::Socket::SSL';
 require './t/common.perl';
 my $psgi = "./t/httpd-corner.psgi";
-my $tmpdir = tempdir('pi-httpd-https-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
 my $https = tcp_server();
index 5ec70fd8f1836f74e7ccd7c239115e6db81eb74a..f7881cfaf0094eb892a5ec80f11b99b6653ff3f0 100644 (file)
@@ -12,9 +12,8 @@ foreach my $mod (qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status)) {
        plan skip_all => "$mod missing for httpd-unix.t" if $@;
 }
 
-use File::Temp qw/tempdir/;
 use IO::Socket::UNIX;
-my $tmpdir = tempdir('httpd-unix-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $unix = "$tmpdir/unix.sock";
 my $psgi = './t/httpd-corner.psgi';
 my $out = "$tmpdir/out.log";
index ce8063b28672863fa97fa73f52b9f8b1d3f3d75e..f0b4efb41a525dc7afb902f21f20be78cdcb3ff0 100644 (file)
--- a/t/httpd.t
+++ b/t/httpd.t
@@ -8,12 +8,11 @@ foreach my $mod (qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status)) {
        eval "require $mod";
        plan skip_all => "$mod missing for httpd.t" if $@;
 }
-use File::Temp qw/tempdir/;
 use Socket qw(IPPROTO_TCP SOL_SOCKET);
 require './t/common.perl';
 
 # FIXME: too much setup
-my $tmpdir = tempdir('pi-httpd-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $home = "$tmpdir/pi-home";
 my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
index d309eec52de1bb63cbc9739960f2bd7abd4e6718..2f5b08a522fb64f67cb67ffc80ffcf2c368c1560 100644 (file)
@@ -9,9 +9,9 @@ use PublicInbox::Import;
 use PublicInbox::Spawn qw(spawn);
 use IO::File;
 use Fcntl qw(:DEFAULT);
-use File::Temp qw/tempdir tempfile/;
-my $dir = tempdir('pi-import-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+use File::Temp qw/tempfile/;
 require './t/common.perl';
+my ($dir, $for_destroy) = tmpdir();
 
 is(system(qw(git init -q --bare), $dir), 0, 'git init successful');
 my $git = PublicInbox::Git->new($dir);
index d129237ec1e99351744e3db3c2df8e39e4a948eb..f1c338e189fa5d648ff1532597e95677635fa440 100644 (file)
@@ -6,7 +6,6 @@ use Test::More;
 use PublicInbox::MIME;
 use PublicInbox::Inbox;
 use PublicInbox::InboxWritable;
-use File::Temp qw/tempdir/;
 require PublicInbox::Admin;
 require './t/common.perl';
 my $PI_TEST_VERSION = $ENV{PI_TEST_VERSION} || 2;
@@ -32,7 +31,7 @@ my $mime = PublicInbox::MIME->create(
 sub import_index_incremental {
        my ($v, $level) = @_;
        my $this = "pi-$v-$level-indexlevels";
-       my $tmpdir = tempdir("$this-tmp-XXXXXX", TMPDIR => 1, CLEANUP => 1);
+       my ($tmpdir, $for_destroy) = tmpdir();
        my $ibx = PublicInbox::Inbox->new({
                inboxdir => "$tmpdir/testbox",
                name => $this,
index 2442eeec7fbcb43a5ee9767230da9c4081848126..165508683690cd5b717b360baec8e14fc625a788 100644 (file)
--- a/t/init.t
+++ b/t/init.t
@@ -4,10 +4,9 @@ use strict;
 use warnings;
 use Test::More;
 use PublicInbox::Config;
-use File::Temp qw/tempdir/;
 require './t/common.perl';
-my $tmpdir = tempdir('pi-init-XXXXXX', TMPDIR => 1, CLEANUP => 1);
 use File::Basename;
+my ($tmpdir, $for_destroy) = tmpdir();
 sub quiet_fail {
        my ($cmd, $msg) = @_;
        my $err = '';
diff --git a/t/mda.t b/t/mda.t
index 89dedd4a05458a2851530294c1543c5fcfaf20c8..47d061322744be3c8745b4f84f9b80c8f6bab94e 100644 (file)
--- a/t/mda.t
+++ b/t/mda.t
@@ -4,12 +4,11 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
 use Cwd qw(getcwd);
 use PublicInbox::MID qw(mid2path);
 use PublicInbox::Git;
 require './t/common.perl';
-my $tmpdir = tempdir('pi-mda-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $home = "$tmpdir/pi-home";
 my $pi_home = "$home/.public-inbox";
 my $pi_config = "$pi_home/config";
index e971b440def780213a1d83ba505bb616f6cdd944..ce17d5a96ee29f7291690f7a42f2e6844d3625a5 100644 (file)
@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 use PublicInbox::MIME;
 use PublicInbox::Config;
 require './t/common.perl';
@@ -15,7 +14,7 @@ foreach my $mod (@mods) {
 }
 
 use_ok 'PublicInbox::V2Writable';
-my $tmpdir = tempdir('mda-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $pi_config = "$tmpdir/pi_config";
 local $ENV{PI_CONFIG} = $pi_config;
 local $ENV{PI_EMERGENCY} = "$tmpdir/emergency";
index f1250bca2da5a39a22023fa862afdd17453fd63d..7fcd131afd8889d866844b74180b7821ec093fd5 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
+require './t/common.perl';
 
 foreach my $mod (qw(DBD::SQLite)) {
        eval "require $mod";
@@ -11,7 +11,7 @@ foreach my $mod (qw(DBD::SQLite)) {
 }
 
 use_ok 'PublicInbox::Msgmap';
-my $tmpdir = tempdir('pi-msgmap-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $d = PublicInbox::Msgmap->new($tmpdir, 1);
 
 my %mid2num;
index 5d170b785fcf0938b1eb6ed0c3a2e0455ef95f60..bbcc04c0c0e063a35b1d7b018831b3d6ae9c0469 100644 (file)
@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw(tempdir);
 use Socket qw(SOCK_STREAM IPPROTO_TCP SOL_SOCKET);
 # IO::Poll and Net::NNTP are part of the standard library, but
 # distros may split them off...
@@ -34,7 +33,7 @@ eval { require Compress::Raw::Zlib } or
        $need_zlib = 'Compress::Raw::Zlib missing';
 my $version = 2; # v2 needs newer git
 require_git('2.6') if $version >= 2;
-my $tmpdir = tempdir('pi-nntpd-tls-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
 my $inboxdir = "$tmpdir";
index da6985be638730516b13f0cc6ee2ea8a52eb2920..39108639ab9edfe793c5b9de7d7546c926544299 100644 (file)
@@ -4,7 +4,6 @@
 # Integration test to validate compression.
 use strict;
 use warnings;
-use File::Temp qw(tempdir);
 use Test::More;
 use Symbol qw(gensym);
 use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
@@ -31,8 +30,8 @@ if ($test_tls && !-r $key || !-r $cert) {
        plan skip_all => "certs/ missing for $0, run $^X ./certs/create-certs.perl";
 }
 require './t/common.perl';
-my $keep_tmp = !!$ENV{TEST_KEEP_TMP};
-my $tmpdir = tempdir('nntpd-validate-XXXXXX',TMPDIR => 1,CLEANUP => $keep_tmp);
+my ($tmpdir, $ftd) = tmpdir();
+$File::Temp::KEEP_ALL = !!$ENV{TEST_KEEP_TMP};
 my (%OPT, $td, $host_port, $group);
 my $batch = 1000;
 if (($ENV{NNTP_TEST_URL} // '') =~ m!\Anntp://([^/]+)/([^/]+)\z!) {
@@ -63,7 +62,7 @@ sub do_get_all {
        my $dig = Digest::SHA->new(1);
        my $digfh = gensym;
        my $tmpfh;
-       if ($keep_tmp) {
+       if ($File::Temp::KEEP_ALL) {
                open $tmpfh, '>', "$tmpdir/$desc.raw" or die $!;
        }
        my $tmp = { dig => $dig, tmpfh => $tmpfh };
index 3c928610de242d1455c2a06091fe8dcb9625dae8..5b697344952f5f9889113de6afaccf7e5d644074 100644 (file)
--- a/t/nntpd.t
+++ b/t/nntpd.t
@@ -13,7 +13,6 @@ require PublicInbox::InboxWritable;
 use Email::Simple;
 use IO::Socket;
 use Socket qw(IPPROTO_TCP TCP_NODELAY);
-use File::Temp qw/tempdir/;
 use Net::NNTP;
 use Sys::Hostname;
 require './t/common.perl';
@@ -22,7 +21,7 @@ require './t/common.perl';
 my $version = $ENV{PI_TEST_VERSION} || 2;
 require_git('2.6') if $version == 2;
 
-my $tmpdir = tempdir('pi-nntpd-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $home = "$tmpdir/pi-home";
 my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
index 4c07f509bf5bb4e292170e288b89fab01cc5f6d8..617997c02308e397ef6be97a2344bc9b9de2ca4d 100644 (file)
@@ -3,11 +3,11 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
+require './t/common.perl';
 
 use_ok 'PublicInbox::Import';
 use_ok 'PublicInbox::Git';
-my $tmpdir = tempdir('pi-nulsubject-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/a.git";
 
 {
index 48c835f80c8ca6abb4fad3baadcbe2731d0f7f85..27168a33d49ed7156254b8b9faedf321c5f1ed81 100644 (file)
--- a/t/over.t
+++ b/t/over.t
@@ -3,15 +3,15 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 use Compress::Zlib qw(compress);
+require './t/common.perl';
 foreach my $mod (qw(DBD::SQLite)) {
        eval "require $mod";
        plan skip_all => "$mod missing for over.t" if $@;
 }
 
 use_ok 'PublicInbox::OverIdx';
-my $tmpdir = tempdir('pi-over-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $over = PublicInbox::OverIdx->new("$tmpdir/over.sqlite3");
 $over->connect;
 my $x = $over->next_tid;
index c7d2eaffe9b5b1a787fe38c314fd569c1f69dd15..6f891ddb0a7383ef8b7a005c97d6743936948d06 100644 (file)
@@ -5,12 +5,11 @@ use warnings;
 use Test::More;
 use Benchmark qw(:all :hireswallclock);
 use PublicInbox::Inbox;
-use File::Temp qw/tempdir/;
 use Net::NNTP;
 my $pi_dir = $ENV{GIANT_PI_DIR};
 plan skip_all => "GIANT_PI_DIR not defined for $0" unless $pi_dir;
 eval { require PublicInbox::Search };
-my ($host_port, $group, %opts, $s, $td);
+my ($host_port, $group, %opts, $s, $td, $tmp_obj);
 require './t/common.perl';
 
 if (($ENV{NNTP_TEST_URL} || '') =~ m!\Anntp://([^/]+)/([^/]+)\z!) {
@@ -20,7 +19,8 @@ if (($ENV{NNTP_TEST_URL} || '') =~ m!\Anntp://([^/]+)/([^/]+)\z!) {
        $group = 'inbox.test.perf.nntpd';
        my $ibx = { inboxdir => $pi_dir, newsgroup => $group };
        $ibx = PublicInbox::Inbox->new($ibx);
-       my $tmpdir = tempdir('perf-nntpd-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+       my $tmpdir;
+       ($tmpdir, $tmp_obj) = tmpdir();
 
        my $pi_config = "$tmpdir/config";
        {
index 9308813f2228f6182ac29cf2baf5710dfd5cc888..6023a419d0716ad169a670ee1451f9d1fbd33acb 100644 (file)
--- a/t/plack.t
+++ b/t/plack.t
@@ -4,9 +4,9 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
+require './t/common.perl';
 my $psgi = "./examples/public-inbox.psgi";
-my $tmpdir = tempdir('pi-plack-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $pi_config = "$tmpdir/config";
 my $maindir = "$tmpdir/main.git";
 my $addr = 'test-public@example.com';
index 96f0cb473ae714b4b39b6fe48591845d75531460..45f05bacd404f2017921017f80c31b07a828d3c1 100644 (file)
@@ -4,8 +4,8 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
-my $tmpdir = tempdir('psgi-attach-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 my $maindir = "$tmpdir/main.git";
 my $addr = 'test-public@example.com';
 my $cfgpfx = "publicinbox.test";
index c7c947188e9499622b8562365c86de91a42d7e4a..0e8fa114ac0bfcc131ebdacf6dc535545382927a 100644 (file)
@@ -3,10 +3,10 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 use PublicInbox::MIME;
 use PublicInbox::Config;
 use PublicInbox::WWW;
+require './t/common.perl';
 my @mods = qw(DBD::SQLite HTTP::Request::Common Plack::Test
                URI::Escape Plack::Builder);
 foreach my $mod (@mods) {
@@ -15,7 +15,7 @@ foreach my $mod (@mods) {
 }
 use_ok($_) for @mods;
 use_ok 'PublicInbox::V2Writable';
-my $inboxdir = tempdir('pi-bad-mids-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($inboxdir, $for_destroy) = tmpdir();
 my $cfgpfx = "publicinbox.bad-mids";
 my $ibx = {
        inboxdir => $inboxdir,
index 7de2bc0eee9d0c2b8b6e4e013a4f682f40f5a581..ca573e1e633d3da60e722b9acf82c2f6133f32e4 100644 (file)
@@ -4,8 +4,8 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
-my $tmpdir = tempdir('psgi-path-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 my $maindir = "$tmpdir/main.git";
 my $addr = 'test-public@example.com';
 my $cfgpfx = "publicinbox.test";
index 40bc3c18c6c8e423c306521af87defbb95b2ef69..d3489f2d8ff5228677759d031588bd303f1fdfde 100644 (file)
@@ -3,10 +3,10 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 use Email::MIME;
 use PublicInbox::Config;
 use PublicInbox::WWW;
+require './t/common.perl';
 my @mods = qw(DBD::SQLite Search::Xapian HTTP::Request::Common
               Plack::Test URI::Escape Plack::Builder Plack::Test);
 foreach my $mod (@mods) {
@@ -15,7 +15,7 @@ foreach my $mod (@mods) {
 }
 use_ok($_) for @mods;
 use_ok 'PublicInbox::V2Writable';
-my $repo = tempdir('pi-psgi-multipart-not.XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($repo, $for_destroy) = tmpdir();
 my $ibx = PublicInbox::Inbox->new({
        inboxdir => $repo,
        name => 'multipart-not',
index 707807a7f0ac21caf5795facabeaaa009dec1be2..5d4cc263a093dabd9b86d7780f96210562c8bb83 100644 (file)
@@ -4,8 +4,8 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
 use PublicInbox::Config;
+require './t/common.perl';
 my @mods = qw(HTTP::Request::Common Plack::Test URI::Escape DBD::SQLite);
 foreach my $mod (@mods) {
        eval "require $mod";
@@ -13,7 +13,7 @@ foreach my $mod (@mods) {
 }
 use_ok 'PublicInbox::V2Writable';
 foreach my $mod (@mods) { use_ok $mod; }
-my $tmp = tempdir('pi-scan_all-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmp, $for_destroy) = tmpdir();
 my $cfg = '';
 
 foreach my $i (1..2) {
index 4cd0e499c1841035e72877feb22c9a0c75a513d1..0c430aeafd8bce6fcec2cfeaf2e2c302496de800 100644 (file)
@@ -3,13 +3,13 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 use Email::MIME;
 use PublicInbox::Config;
 use PublicInbox::Inbox;
 use PublicInbox::InboxWritable;
 use PublicInbox::WWW;
 use bytes (); # only for bytes::length
+require './t/common.perl';
 my @mods = qw(DBD::SQLite Search::Xapian HTTP::Request::Common Plack::Test
                URI::Escape Plack::Builder);
 foreach my $mod (@mods) {
@@ -18,7 +18,7 @@ foreach my $mod (@mods) {
 }
 
 use_ok $_ foreach (@mods, qw(PublicInbox::SearchIdx));
-my $tmpdir = tempdir('pi-psgi-search.XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 
 my $ibx = PublicInbox::Inbox->new({
        inboxdir => $tmpdir,
index da7c6f57ba6a49d8db34917a43e9dc480b032e48..b956418165dbbb393631f9353f3f654fce07dc1c 100644 (file)
@@ -4,8 +4,8 @@ use strict;
 use warnings;
 use Test::More;
 use Email::MIME;
-use File::Temp qw/tempdir/;
-my $tmpdir = tempdir('psgi-text-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 my $maindir = "$tmpdir/main.git";
 my $addr = 'test-public@example.com';
 my $cfgpfx = "publicinbox.test";
index c7550e2d1e84355e6cc17c41e5ec3af80f98b2b1..1163e2bf89f73c9bd400b23f5fbe2d275086ce94 100644 (file)
@@ -5,7 +5,6 @@ use warnings;
 use Test::More;
 require './t/common.perl';
 require_git(2.6);
-use File::Temp qw/tempdir/;
 use PublicInbox::MIME;
 use PublicInbox::Config;
 use PublicInbox::WWW;
@@ -18,7 +17,7 @@ foreach my $mod (@mods) {
 }
 use_ok($_) for @mods;
 use_ok 'PublicInbox::V2Writable';
-my $inboxdir = tempdir('pi-v2_dupes-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($inboxdir, $for_destroy) = tmpdir();
 my $ibx = {
        inboxdir => $inboxdir,
        name => 'test-v2writable',
index bcdbad52b751fa7ccf5caf2b3d27bc5c0cc26122..12644d691f038b3034c97280fb45a3e557f2fc14 100644 (file)
--- a/t/purge.t
+++ b/t/purge.t
@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw/tempdir/;
 require './t/common.perl';
 require_git(2.6);
 my @mods = qw(DBI DBD::SQLite);
@@ -13,7 +12,7 @@ foreach my $mod (@mods) {
 };
 use Cwd qw(abs_path); # we need this since we chdir below
 my $purge = abs_path('blib/script/public-inbox-purge');
-my $tmpdir = tempdir('pi-purge-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 use_ok 'PublicInbox::V2Writable';
 my $inboxdir = "$tmpdir/v2";
 my $ibx = PublicInbox::Inbox->new({
index 24f7537c4ed8c1739cf682b720bb376187ba5ab5..039c6bc6fde54d21eb3558f3ab61c47e8e3b49dd 100644 (file)
@@ -5,7 +5,6 @@ use warnings;
 use Test::More;
 use PublicInbox::MIME;
 use PublicInbox::InboxWritable;
-use File::Temp qw/tempdir/;
 require './t/common.perl';
 require_git(2.6); # replace is v2 only, for now...
 foreach my $mod (qw(DBD::SQLite)) {
@@ -17,7 +16,7 @@ sub test_replace ($$$) {
        my ($v, $level, $opt) = @_;
        diag "v$v $level replace";
        my $this = "pi-$v-$level-replace";
-       my $tmpdir = tempdir("$this-tmp-XXXXXX", TMPDIR => 1, CLEANUP => 1);
+       my ($tmpdir, $for_destroy) = tmpdir($this);
        my $ibx = PublicInbox::Inbox->new({
                inboxdir => "$tmpdir/testbox",
                name => $this,
index 26339989cf8de4592f2bfa31476689aed8897546..4f7936579776b11d5401708c04d1049b5ca165f6 100644 (file)
@@ -4,7 +4,6 @@ use strict;
 use warnings;
 use bytes (); # only for bytes::length
 use Test::More;
-use File::Temp qw/tempdir/;
 use PublicInbox::MID qw(mids);
 use Email::MIME;
 my @mods = qw(DBI DBD::SQLite Search::Xapian);
@@ -14,7 +13,8 @@ foreach my $mod (@mods) {
 }
 require PublicInbox::SearchIdx;
 require PublicInbox::Inbox;
-my $tmpdir = tempdir('pi-search-thr-index.XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/a.git";
 
 is(0, system(qw(git init -q --bare), $git_dir), "git init (main)");
index b6531ab37bf5c4009f310aaa628a4991230c9e7e..586841383c479478d6974564b899116aaa9a40de 100644 (file)
@@ -10,9 +10,9 @@ foreach my $mod (@mods) {
 };
 require PublicInbox::SearchIdx;
 require PublicInbox::Inbox;
-use File::Temp qw/tempdir/;
+require './t/common.perl';
 use Email::MIME;
-my $tmpdir = tempdir('pi-search-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/a.git";
 my $ibx = PublicInbox::Inbox->new({ inboxdir => $git_dir });
 my ($root_id, $last_id);
index baab40a49a3d72bd85b029786dedb140fbfeb6d3..9bda157d114ccf387313fd20540f9d5d5fde643d 100644 (file)
@@ -3,7 +3,6 @@
 use strict;
 use warnings;
 use Test::More;
-use File::Temp qw(tempdir);
 use Cwd qw(abs_path);
 require './t/common.perl';
 require_git(2.6);
@@ -22,7 +21,7 @@ $git_dir = abs_path($git_dir);
 
 use_ok "PublicInbox::$_" for (qw(Inbox V2Writable MIME Git SolverGit));
 
-my $inboxdir = tempdir('pi-solver-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($inboxdir, $for_destroy) = tmpdir();
 my $opts = {
        inboxdir => $inboxdir,
        name => 'test-v2writable',
index c13108f4c10318863e9649ddcd7e8a0137df29fe..a4a01a8b98ce929cfca434fa3b6cda84b68a2a65 100644 (file)
@@ -5,9 +5,9 @@ use warnings;
 use Test::More;
 use Email::Simple;
 use IO::File;
-use File::Temp qw/tempdir/;
 use Fcntl qw(:DEFAULT SEEK_SET);
-my $tmpdir = tempdir('spamcheck_spamc-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+require './t/common.perl';
+my ($tmpdir, $for_destroy) = tmpdir();
 
 use_ok 'PublicInbox::Spamcheck::Spamc';
 my $spamc = PublicInbox::Spamcheck::Spamc->new;
index 035fba5cdc17d64cbbb34337d6f751a052abdf02..13e9f29ce95eb68b900e1aa044605e62f67a3180 100644 (file)
@@ -5,15 +5,15 @@ use warnings;
 use Test::More;
 use PublicInbox::MIME;
 use PublicInbox::Import;
-use File::Temp qw/tempdir/;
+require './t/common.perl';
 
 foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
        eval "require $mod";
        plan skip_all => "$mod missing for v1-add-remove-add.t" if $@;
 }
 require PublicInbox::SearchIdx;
-my $inboxdir = tempdir('pi-add-remove-add-XXXXXX', TMPDIR => 1, CLEANUP => 1);
-is(system(qw(git init -q --bare), $inboxdir), 0);
+my ($inboxdir, $for_destroy) = tmpdir();
+is(system(qw(git init --bare -q), $inboxdir), 0);
 my $ibx = {
        inboxdir => $inboxdir,
        name => 'test-add-remove-add',
index e35477535800626e47bda9bd64546c32d3514098..c0e21a56b6ce7a8aca36ffbf12e6d9b5eaa7b390 100644 (file)
@@ -5,7 +5,6 @@ use warnings;
 use Test::More;
 use PublicInbox::MIME;
 use PublicInbox::ContentId qw(content_digest);
-use File::Temp qw/tempdir/;
 use File::Path qw(remove_tree);
 require './t/common.perl';
 require_git(2.6);
@@ -16,7 +15,7 @@ foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
 }
 use_ok 'PublicInbox::SearchIdx';
 use_ok 'PublicInbox::Import';
-my $inboxdir = tempdir('pi-v1reindex-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($inboxdir, $for_destroy) = tmpdir();
 is(system(qw(git init -q --bare), $inboxdir), 0);
 my $ibx_config = {
        inboxdir => $inboxdir,
index 438fe3db7367d934da926935f6d35f06a22cf5d9..c0dec30045b821d92b4aa9933a54c4d0e01581de 100644 (file)
@@ -4,7 +4,6 @@ use strict;
 use warnings;
 use Test::More;
 use PublicInbox::MIME;
-use File::Temp qw/tempdir/;
 require './t/common.perl';
 require_git(2.6);
 
@@ -13,7 +12,7 @@ foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
        plan skip_all => "$mod missing for v2-add-remove-add.t" if $@;
 }
 use_ok 'PublicInbox::V2Writable';
-my $inboxdir = tempdir('pi-add-remove-add-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($inboxdir, $for_destroy) = tmpdir();
 my $ibx = {
        inboxdir => "$inboxdir/v2",
        name => 'test-v2writable',
index 0cd852b1908b97240e00bddf1a8ff84384997769..11a517e4bd677fd13bc79032a32adea1954d2884 100644 (file)
--- a/t/v2mda.t
+++ b/t/v2mda.t
@@ -4,7 +4,6 @@ use strict;
 use warnings;
 use Test::More;
 use PublicInbox::MIME;
-use File::Temp qw/tempdir/;
 use Fcntl qw(SEEK_SET);
 use Cwd;
 require './t/common.perl';
@@ -16,7 +15,7 @@ foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
        plan skip_all => "$mod missing for v2mda.t" if $@;
 }
 use_ok 'PublicInbox::V2Writable';
-my $tmpdir = tempdir('pi-v2mda-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $ibx = {
        inboxdir => "$tmpdir/inbox",
        name => 'test-v2writable',
index 1a39ce4982488cfe98eaaafb22e3c52aa41180ab..96657fdc830755b26bc8bbf4c6bf6389126fe598 100644 (file)
@@ -12,7 +12,6 @@ foreach my $mod (qw(Plack::Util Plack::Builder
        eval "require $mod";
        plan skip_all => "$mod missing for v2mirror.t" if $@;
 }
-use File::Temp qw/tempdir/;
 use IO::Socket;
 use POSIX qw(dup2);
 use_ok 'PublicInbox::V2Writable';
@@ -20,7 +19,7 @@ use PublicInbox::InboxWritable;
 use PublicInbox::MIME;
 use PublicInbox::Config;
 # FIXME: too much setup
-my $tmpdir = tempdir('pi-v2mirror-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $pi_config = "$tmpdir/config";
 {
        open my $fh, '>', $pi_config or die "open($pi_config): $!";
index 3e56ddfa076f7a548ea9704d6a273f458f17a7d2..e222d0f101a4e71ad11622bf199d99aa45662bc7 100644 (file)
@@ -5,7 +5,6 @@ use warnings;
 use Test::More;
 use PublicInbox::MIME;
 use PublicInbox::ContentId qw(content_digest);
-use File::Temp qw/tempdir/;
 use File::Path qw(remove_tree);
 require './t/common.perl';
 require_git(2.6);
@@ -15,7 +14,7 @@ foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
        plan skip_all => "$mod missing for v2reindex.t" if $@;
 }
 use_ok 'PublicInbox::V2Writable';
-my $inboxdir = tempdir('pi-v2reindex-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($inboxdir, $for_destroy) = tmpdir();
 my $ibx_config = {
        inboxdir => $inboxdir,
        name => 'test-v2writable',
index 4bb6d733d4e27582af2a4e9fa071edd39a034433..7519b4878585746851526cd998d0828106d91168 100644 (file)
@@ -5,7 +5,6 @@ use warnings;
 use Test::More;
 use PublicInbox::MIME;
 use PublicInbox::ContentId qw(content_digest);
-use File::Temp qw/tempdir/;
 require './t/common.perl';
 require_git(2.6);
 foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
@@ -14,7 +13,7 @@ foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
 }
 use_ok 'PublicInbox::V2Writable';
 umask 007;
-my $inboxdir = tempdir('pi-v2writable-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($inboxdir, $for_destroy) = tmpdir();
 my $ibx = {
        inboxdir => $inboxdir,
        name => 'test-v2writable',
index 57ab3b91f3c49d0fe337d6e25035c9c207ed610f..c407887953795176f2bf80f20db86d718b43f96f 100644 (file)
@@ -4,7 +4,6 @@ use strict;
 use warnings;
 require './t/common.perl';
 use Test::More;
-use File::Temp qw/tempdir/;
 use PublicInbox::MIME;
 use PublicInbox::Config;
 my @mods = qw(Filesys::Notify::Simple DBD::SQLite Search::Xapian);
@@ -15,7 +14,7 @@ foreach my $mod (@mods) {
 
 use_ok 'PublicInbox::WatchMaildir';
 use_ok 'PublicInbox::Emergency';
-my $tmpdir = tempdir('watch-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 local $ENV{PI_CONFIG} = "$tmpdir/pi_config";
 
 my @v = qw(V1);
index 41d50329ec72bfa940c25aedb1bb2f00e332d3d3..d2e6fecdd095d1bbbf3fd52d0312983c7eba7164 100644 (file)
@@ -2,17 +2,17 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use Test::More;
-use File::Temp qw/tempdir/;
 use Email::MIME;
 use Cwd;
 use PublicInbox::Config;
+require './t/common.perl';
 my @mods = qw(Filesys::Notify::Simple);
 foreach my $mod (@mods) {
        eval "require $mod";
        plan skip_all => "$mod missing for watch_maildir.t" if $@;
 }
 
-my $tmpdir = tempdir('watch_maildir-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/test.git";
 my $maildir = "$tmpdir/md";
 my $spamdir = "$tmpdir/spam";
index e0e8a13f4a0f8286bfad02da5b731bf1a3db4a26..53f1bdfc8128c1effa29ae812ce104f7ecac0871 100644 (file)
@@ -2,7 +2,6 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use Test::More;
-use File::Temp qw/tempdir/;
 use PublicInbox::MIME;
 use Cwd;
 use PublicInbox::Config;
@@ -14,7 +13,7 @@ foreach my $mod (@mods) {
        plan skip_all => "$mod missing for watch_maildir_v2.t" if $@;
 }
 require PublicInbox::V2Writable;
-my $tmpdir = tempdir('watch_maildir-v2-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $inboxdir = "$tmpdir/v2";
 my $maildir = "$tmpdir/md";
 my $spamdir = "$tmpdir/spam";
index 9cde357514acbf0651fbec30ca51797d66cabd65..c9201213c12482056b48984b2ac39a8c9ffeb8b1 100644 (file)
@@ -5,7 +5,6 @@ use strict;
 use warnings;
 use Test::More;
 use PublicInbox::Spawn qw(which);
-use File::Temp qw/tempdir/;
 require './t/common.perl';
 my @mods = qw(URI::Escape Plack::Builder Digest::SHA
                IO::Compress::Gzip IO::Uncompress::Gunzip HTTP::Tiny);
@@ -19,7 +18,7 @@ plan skip_all => "JSON module missing: $@" if $@;
 
 use_ok 'PublicInbox::Git';
 
-my $tmpdir = tempdir('www_listing-tmp-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $bare = PublicInbox::Git->new("$tmpdir/bare.git");
 is(system(qw(git init -q --bare), $bare->{git_dir}), 0, 'git init --bare');
 is(PublicInbox::WwwListing::fingerprint($bare), undef,
index 9335843dce973fb42926419eabdfc8243b07cf9f..ebf156a31968a68829c134115f1e969b7e112ed4 100644 (file)
@@ -10,7 +10,6 @@ foreach my $mod (@mods) {
 };
 require './t/common.perl';
 require_git('2.6');
-use File::Temp qw/tempdir/;
 use PublicInbox::MIME;
 use PublicInbox::InboxWritable;
 
@@ -25,7 +24,7 @@ my $mime = PublicInbox::MIME->create(
 );
 
 my ($this) = (split('/', $0))[-1];
-my $tmpdir = tempdir($this.'-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $ibx = PublicInbox::Inbox->new({
        inboxdir => "$tmpdir/testbox",
        name => $this,