]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/import.t
www: drop --subject from "git send-email" instructions
[public-inbox.git] / t / import.t
index 9491f337484189418662fd76b3d5f52162c3cd39..ae76858ba2ab7827bc7aaa1d45db377a0954ee64 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use warnings;
@@ -7,9 +7,7 @@ use PublicInbox::Eml;
 use PublicInbox::Smsg;
 use PublicInbox::Git;
 use PublicInbox::Import;
-use PublicInbox::Spawn qw(spawn);
 use Fcntl qw(:DEFAULT SEEK_SET);
-use File::Temp qw/tempfile/;
 use PublicInbox::TestCommon;
 use MIME::Base64 3.05; # Perl 5.10.0 / 5.9.2
 my ($dir, $for_destroy) = tmpdir();
@@ -33,20 +31,13 @@ like($im->add($mime, undef, $smsg), qr/\A:[0-9]+\z/, 'added one message');
 
 if ($v2) {
        like($smsg->{blob}, qr/\A[a-f0-9]{40}\z/, 'got last object_id');
-       my $raw_email = $smsg->{-raw_email};
-       is($mime->as_string, $$raw_email, 'string matches');
-       is($smsg->{raw_bytes}, length($$raw_email), 'length matches');
        my @cmd = ('git', "--git-dir=$git->{git_dir}", qw(hash-object --stdin));
-       my $in = tempfile();
+       open my $in, '+<', undef or BAIL_OUT "open(+<): $!";
        print $in $mime->as_string or die "write failed: $!";
        $in->flush or die "flush failed: $!";
-       seek($in, 0, SEEK_SET);
-       my $out = tempfile();
-       my $pid = spawn(\@cmd, {}, { 0 => $in, 1 => $out });
-       is(waitpid($pid, 0), $pid, 'waitpid succeeds on hash-object');
+       seek($in, 0, SEEK_SET) or die "seek: $!";
+       chomp(my $hashed_obj = xqx(\@cmd, undef, { 0 => $in }));
        is($?, 0, 'hash-object');
-       seek($out, 0, SEEK_SET);
-       chomp(my $hashed_obj = <$out>);
        is($hashed_obj, $smsg->{blob}, "blob object_id matches exp");
 }
 
@@ -126,5 +117,6 @@ like($$bref, qr/^author Ba d \$main::badchars <spammer\@example\.com> /sm,
         'latest commit accepted by spammer');
 $git->qx(qw(fsck --no-progress --strict));
 is($?, 0, 'fsck reported no errors');
+$main::badchars = undef;
 
 done_testing();