+{ # stdout support
+ open my $tmp, '+>', undef or BAIL_OUT $!;
+ local $lei->{1} = $tmp;
+ my $wcb = PublicInbox::LeiToMail->write_cb("mboxrd:/dev/stdout", $lei);
+ $wcb->(\(my $x = $buf), 'deadbeef', []);
+ undef $wcb; # commit
+ seek($tmp, 0, SEEK_SET) or BAIL_OUT $!;
+ my $cmp = '';
+ PublicInbox::MboxReader->mboxrd($tmp, sub { $cmp .= shift->as_string });
+ is($cmp, $buf, 'message written to stdout');
+}
+
+SKIP: { # FIFO support
+ use PublicInbox::Spawn qw(popen_rd which);
+ use POSIX qw(mkfifo);
+ my $fn = "$tmpdir/fifo";
+ mkfifo($fn, 0600) or skip("mkfifo not supported: $!", 1);
+ my $cat = popen_rd([which('cat'), $fn]);
+ my $wcb = PublicInbox::LeiToMail->write_cb("mboxo:$fn", $lei);
+ $wcb->(\(my $x = $buf), 'deadbeef', []);
+ undef $wcb; # commit
+ my $cmp = '';
+ PublicInbox::MboxReader->mboxo($cat, sub { $cmp .= shift->as_string });
+ is($cmp, $buf, 'message written to FIFO');
+}
+