user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 5/9] t/mda: use only Maildir for testing
  2016-06-15  0:37  6% [PATCH 0/9] big mda filter changes Eric Wong
@ 2016-06-15  0:37  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2016-06-15  0:37 UTC (permalink / raw)
  To: meta

Remove mbox tests since mbox is unreliable due to raciness
and incompatible implementations.  We will drop support for
mbox emergency destinations, soon.
---
 t/mda.t | 75 +++++++++++------------------------------------------------------
 1 file changed, 12 insertions(+), 63 deletions(-)

diff --git a/t/mda.t b/t/mda.t
index 66ba859..3456699 100644
--- a/t/mda.t
+++ b/t/mda.t
@@ -22,7 +22,7 @@ my $fail_bin = getcwd()."/t/fail-bin";
 my $fail_path = "$fail_bin:$ENV{PATH}"; # for spamc spam mock
 my $addr = 'test-public@example.com';
 my $cfgpfx = "publicinbox.test";
-my $failbox = "$home/fail.mbox";
+my $faildir = "$home/faildir/";
 my $mime;
 
 {
@@ -72,7 +72,7 @@ die $@ if $@;
 
 {
 	my $good_rev;
-	local $ENV{PI_EMERGENCY} = $failbox;
+	local $ENV{PI_EMERGENCY} = $faildir;
 	local $ENV{HOME} = $home;
 	local $ENV{ORIGINAL_RECIPIENT} = $addr;
 	my $simple = Email::Simple->new(<<EOF);
@@ -103,12 +103,14 @@ EOF
 
 	# ensure failures work, fail with bad spamc
 	{
-		ok(!-e $failbox, "nothing in PI_EMERGENCY before");
+		my @prev = <$faildir/new/*>;
+		is(scalar @prev, 0 , "nothing in PI_EMERGENCY before");
 		local $ENV{PATH} = $fail_path;
 		run([$mda], \$in);
 		my @revs = `git --git-dir=$maindir rev-list HEAD`;
 		is(scalar @revs, 1, "bad revision not committed");
-		ok(-s $failbox > 0, "PI_EMERGENCY is written to");
+		my @new = <$faildir/new/*>;
+		is(scalar @new, 1, "PI_EMERGENCY is written to");
 	}
 
 	fail_bad_header($good_rev, "bad recipient", <<"");
@@ -158,7 +160,7 @@ Date: deadbeef
 
 # spam training
 {
-	local $ENV{PI_EMERGENCY} = $failbox;
+	local $ENV{PI_EMERGENCY} = $faildir;
 	local $ENV{HOME} = $home;
 	local $ENV{ORIGINAL_RECIPIENT} = $addr;
 	local $ENV{PATH} = $main_path;
@@ -193,7 +195,7 @@ EOF
 
 # train ham message
 {
-	local $ENV{PI_EMERGENCY} = $failbox;
+	local $ENV{PI_EMERGENCY} = $faildir;
 	local $ENV{HOME} = $home;
 	local $ENV{ORIGINAL_RECIPIENT} = $addr;
 	local $ENV{PATH} = $main_path;
@@ -263,72 +265,19 @@ EOF
 	}
 }
 
-# faildir - emergency destination is maildir
-{
-	my $faildir= "$home/faildir/";
-	local $ENV{PI_EMERGENCY} = $faildir;
-	local $ENV{HOME} = $home;
-	local $ENV{ORIGINAL_RECIPIENT} = $addr;
-	local $ENV{PATH} = $fail_path;
-	my $in = <<EOF;
-From: Faildir <faildir\@example.com>
-To: You <you\@example.com>
-Cc: $addr
-Message-ID: <faildir\@example.com>
-Subject: faildir subject
-Date: Thu, 01 Jan 1970 00:00:00 +0000
-
-EOF
-	run([$mda], \$in);
-	ok(-d $faildir, "emergency exists");
-	my @new = glob("$faildir/new/*");
-	is(scalar(@new), 1, "message delivered");
-	is(unlink(@new), 1, "removed emergency message");
-
-	local $ENV{PATH} = $main_path;
-	$in = <<EOF;
-From: Faildir <faildir\@example.com>
-To: $addr
-Content-Type: text/html
-Message-ID: <faildir\@example.com>
-Subject: faildir subject
-Date: Thu, 01 Jan 1970 00:00:00 +0000
-
-<html><body>bad</body></html>
-EOF
-	my $out = '';
-	my $err = '';
-	run([$mda], \$in, \$out, \$err);
-	isnt($?, 0, "mda exited with failure");
-	is(length $out, 0, 'nothing in stdout');
-	isnt(length $err, 0, 'error message in stderr');
-
-	@new = glob("$faildir/new/*");
-	is(scalar(@new), 0, "new message did not show up");
-
-	# reject multipart again
-	$in = $mime->as_string;
-	$err = '';
-	run([$mda], \$in, \$out, \$err);
-	isnt($?, 0, "mda exited with failure");
-	is(length $out, 0, 'nothing in stdout');
-	isnt(length $err, 0, 'error message in stderr');
-	@new = glob("$faildir/new/*");
-	is(scalar(@new), 0, "new message did not show up");
-}
-
 done_testing();
 
 sub fail_bad_header {
 	my ($good_rev, $msg, $in) = @_;
-	open my $fh, '>', $failbox or die "failed to open $failbox: $!\n";
-	close $fh or die "failed to close $failbox: $!\n";
+	my @f = glob("$faildir/*/*");
+	unlink @f if @f;
 	my ($out, $err) = ("", "");
 	local $ENV{PATH} = $main_path;
 	run([$mda], \$in, \$out, \$err);
 	my $rev = `git --git-dir=$maindir rev-list HEAD`;
 	chomp $rev;
 	is($rev, $good_rev, "bad revision not commited ($msg)");
-	ok(-s $failbox > 0, "PI_EMERGENCY is written to ($msg)");
+	@f = glob("$faildir/*/*");
+	is(scalar @f, 1, "faildir written to");
 	[ $in, $out, $err ];
 }

^ permalink raw reply related	[relevance 7%]

* [PATCH 0/9] big mda filter changes
@ 2016-06-15  0:37  6% Eric Wong
  2016-06-15  0:37  7% ` [PATCH 5/9] t/mda: use only Maildir for testing Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2016-06-15  0:37 UTC (permalink / raw)
  To: meta

Eric Wong (9):
      drop dependency on File::Path::Expand
      t/feed.t: make IPC::Run usage optional
      learn: remove IPC::Run dependency
      t/mda.t: remove senseless use of Email::Filter
      t/mda: use only Maildir for testing
      mda: precheck no longer depends on Email::Filter
      filter: begin work on a new filter API
      emergency: implement new emergency Maildir delivery
      mda: hook up new filter functionality

 INSTALL                          |   3 -
 Makefile.PL                      |   2 -
 lib/PublicInbox/Config.pm        |   3 +-
 lib/PublicInbox/Emergency.pm     |  96 +++++++++++
 lib/PublicInbox/Filter.pm        | 232 ---------------------------
 lib/PublicInbox/Filter/Base.pm   | 100 ++++++++++++
 lib/PublicInbox/Filter/Mirror.pm |  12 ++
 lib/PublicInbox/Filter/Vger.pm   |  33 ++++
 lib/PublicInbox/MDA.pm           |  11 +-
 script/public-inbox-learn        |  42 +++--
 script/public-inbox-mda          | 135 ++++++++--------
 t/emergency.t                    |  53 ++++++
 t/feed.t                         |  18 +--
 t/filter.t                       | 337 ---------------------------------------
 t/filter_base.t                  |  81 ++++++++++
 t/filter_mirror.t                |  40 +++++
 t/filter_vger.t                  |  46 ++++++
 t/mda.t                          |  79 ++-------
 t/precheck.t                     |  14 +-
 19 files changed, 586 insertions(+), 751 deletions(-)

 Note to self: get "git apply" to work on --irreversible-delete patches


^ permalink raw reply	[relevance 6%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2016-06-15  0:37  6% [PATCH 0/9] big mda filter changes Eric Wong
2016-06-15  0:37  7% ` [PATCH 5/9] t/mda: use only Maildir for testing 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).