diff options
author | Eric Wong <e@80x24.org> | 2019-12-18 03:36:43 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-12-19 03:59:17 +0000 |
commit | 684d26cecc0891261783be179909b0e434692b25 (patch) | |
tree | a1d78c9f23792d0272ee542c06cd347b848cffc6 /t/mda.t | |
parent | 55b11c59936125aab26694e17631828c7ea9954e (diff) | |
download | public-inbox-684d26cecc0891261783be179909b0e434692b25.tar.gz |
These usages of file-local global variables make the *.t files incompatible with run_script(). Instead, use anonymous subs, "our", or pass the parameter as appropriate.
Diffstat (limited to 't/mda.t')
-rw-r--r-- | t/mda.t | 46 |
1 files changed, 23 insertions, 23 deletions
@@ -23,6 +23,23 @@ my $faildir = "$home/faildir/"; my $mime; my $git = PublicInbox::Git->new($maindir); +my $fail_bad_header = sub ($$$) { + my ($good_rev, $msg, $in) = @_; + my @f = glob("$faildir/*/*"); + unlink @f if @f; + my ($out, $err) = ("", ""); + my $opt = { 0 => \$in, 1 => \$out, 2 => \$err }; + local $ENV{PATH} = $main_path; + ok(run_script(['-mda'], undef, $opt), + "no error on undeliverable ($msg)"); + my $rev = $git->qx(qw(rev-list HEAD)); + chomp $rev; + is($rev, $good_rev, "bad revision not commited ($msg)"); + @f = glob("$faildir/*/*"); + is(scalar @f, 1, "faildir written to"); + [ $in, $out, $err ]; +}; + { ok(-x "$main_bin/spamc", "spamc ham mock found (run in top of source tree"); @@ -110,14 +127,14 @@ EOF is(scalar @new, 1, "PI_EMERGENCY is written to"); } - fail_bad_header($good_rev, "bad recipient", <<""); + $fail_bad_header->($good_rev, "bad recipient", <<""); From: Me <me\@example.com> To: You <you\@example.com> Message-Id: <bad-recipient\@example.com> Subject: hihi Date: Thu, 01 Jan 1970 00:00:00 +0000 - my $fail = fail_bad_header($good_rev, "duplicate Message-ID", <<""); + my $fail = $fail_bad_header->($good_rev, "duplicate Message-ID", <<""); From: Me <me\@example.com> To: You <you\@example.com> Cc: $addr @@ -127,26 +144,26 @@ Date: Thu, 01 Jan 1970 00:00:00 +0000 like($fail->[2], qr/CONFLICT/, "duplicate Message-ID message"); - fail_bad_header($good_rev, "missing From:", <<""); + $fail_bad_header->($good_rev, "missing From:", <<""); To: $addr Message-ID: <missing-from\@example.com> Subject: hihi Date: Thu, 01 Jan 1970 00:00:00 +0000 - fail_bad_header($good_rev, "short subject:", <<""); + $fail_bad_header->($good_rev, "short subject:", <<""); To: $addr From: cat\@example.com Message-ID: <short-subject\@example.com> Subject: a Date: Thu, 01 Jan 1970 00:00:00 +0000 - fail_bad_header($good_rev, "no date", <<""); + $fail_bad_header->($good_rev, "no date", <<""); To: $addr From: u\@example.com Message-ID: <no-date\@example.com> Subject: hihi - fail_bad_header($good_rev, "bad date", <<""); + $fail_bad_header->($good_rev, "bad date", <<""); To: $addr From: u\@example.com Message-ID: <bad-date\@example.com> @@ -329,20 +346,3 @@ EOF } done_testing(); - -sub fail_bad_header { - my ($good_rev, $msg, $in) = @_; - my @f = glob("$faildir/*/*"); - unlink @f if @f; - my ($out, $err) = ("", ""); - my $opt = { 0 => \$in, 1 => \$out, 2 => \$err }; - local $ENV{PATH} = $main_path; - ok(run_script(['-mda'], undef, $opt), - "no error on undeliverable ($msg)"); - my $rev = $git->qx(qw(rev-list HEAD)); - chomp $rev; - is($rev, $good_rev, "bad revision not commited ($msg)"); - @f = glob("$faildir/*/*"); - is(scalar @f, 1, "faildir written to"); - [ $in, $out, $err ]; -} |