-# Copyright (C) 2014-2015 all contributors <meta@public-inbox.org>
-# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
+# Copyright (C) 2014-2019 all contributors <meta@public-inbox.org>
+# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
use strict;
use warnings;
use Test::More;
use Email::MIME;
use PublicInbox::Feed;
-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';
+use PublicInbox::TestCommon;
sub string_feed {
- stream_to_string(PublicInbox::Feed::generate($_[0]));
-}
-
-# ensure we are compatible with existing ssoma installations which
-# do not use fast-import. We can probably remove this in 2018
-my %SSOMA;
-sub rand_use ($) {
- return 0 if $ENV{FAST};
- eval { require IPC::Run };
- return 0 if $@;
- my $cmd = $_[0];
- my $x = $SSOMA{$cmd};
- unless ($x) {
- $x = -1;
- foreach my $p (split(':', $ENV{PATH})) {
- -x "$p/$cmd" or next;
- $x = 1;
- last;
- }
- $SSOMA{$cmd} = $x;
+ my $res = PublicInbox::Feed::generate($_[0]);
+ my $body = $res->[2];
+ my $str = '';
+ while (defined(my $chunk = $body->getline)) {
+ $str .= $chunk;
}
- return if $x < 0;
- ($x > 0 && (int(rand(10)) % 2) == 1);
+ $body->close;
+ $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',
name => 'testbox',
- mainrepo => $git_dir,
- url => 'http://example.com/test',
+ inboxdir => $git_dir,
+ url => [ 'http://example.com/test' ],
feedmax => 3,
});
my $git = $ibx->git;
keep me
EOF
- if (rand_use('ssoma-mda')) {
- $im->done;
- my $str = $mime->as_string;
- IPC::Run::run(['ssoma-mda', $git_dir], \$str) or
- die "mda failed: $?\n";
- } else {
- like($im->add($mime), qr/\A:\d+/, 'added');
- }
+ like($im->add($mime), qr/\A:\d+/, 'added');
}
$im->done;
}
Date: Thu, 01 Jan 1970 00:00:00 +0000
EOF
- if (rand_use('ssoma-mda')) {
- my $str = $spam->as_string;
- IPC::Run::run(['ssoma-mda', $git_dir], \$str) or
- die "mda failed: $?\n";
- } else {
- $im->add($spam);
- $im->done;
- }
+ $im->add($spam);
+ $im->done;
}
# check spam shows up
}
# nuke spam
- if (rand_use('ssoma-rm')) {
- my $spam_str = $spam->as_string;
- IPC::Run::run(["ssoma-rm", $git_dir], \$spam_str) or
- die "ssoma-rm failed: $?\n";
- } else {
- $im->remove($spam);
- $im->done;
- }
+ $im->remove($spam);
+ $im->done;
# spam no longer shows up
{