# FIXME: make easier to test both versions
my $version = $ENV{PI_TEST_VERSION} || 2;
require_git('2.6') if $version == 2;
# FIXME: make easier to test both versions
my $version = $ENV{PI_TEST_VERSION} || 2;
require_git('2.6') if $version == 2;
my $home = "$tmpdir/pi-home";
my $err = "$tmpdir/stderr.log";
my $out = "$tmpdir/stdout.log";
my $home = "$tmpdir/pi-home";
my $err = "$tmpdir/stderr.log";
my $out = "$tmpdir/stdout.log";
SKIP: {
skip "git 2.6+ required for V2Writable", 1 if $version == 1;
use_ok 'PublicInbox::V2Writable';
SKIP: {
skip "git 2.6+ required for V2Writable", 1 if $version == 1;
use_ok 'PublicInbox::V2Writable';
- my @cmd = ($init, $group, $mainrepo, 'http://example.com/', $addr);
+ my @cmd = ('-init', $group, $inboxdir, 'http://example.com/', $addr);
is(system(qw(git config), "--file=$home/.public-inbox/config",
"publicinbox.$group.newsgroup", $group),
0, 'enabled newsgroup');
is(system(qw(git config), "--file=$home/.public-inbox/config",
"publicinbox.$group.newsgroup", $group),
0, 'enabled newsgroup');
- my $cmd = [ $nntpd, "--stdout=$out", "--stderr=$err" ];
- $pid = spawn_listener(undef, $cmd, [ $sock ]);
- ok(defined $pid, 'forked nntpd process successfully');
+ my $cmd = [ '-nntpd', '-W0', "--stdout=$out", "--stderr=$err" ];
+ $td = start_script($cmd, undef, { 3 => $sock });
sysread($s, my $buf, 4096);
is($buf, "201 " . hostname . " ready - post via email\r\n",
'got greeting');
sysread($s, my $buf, 4096);
is($buf, "201 " . hostname . " ready - post via email\r\n",
'got greeting');
ok(syswrite($s, " \r\n"), 'wrote spaces');
ok(syswrite($s, "\r\n"), 'wrote nothing');
syswrite($s, "NEWGROUPS\t19990424 000000 \033GMT\007\r\n");
is(0, sysread($s, $buf, 4096), 'GOT EOF on cntrl');
ok(syswrite($s, " \r\n"), 'wrote spaces');
ok(syswrite($s, "\r\n"), 'wrote nothing');
syswrite($s, "NEWGROUPS\t19990424 000000 \033GMT\007\r\n");
is(0, sysread($s, $buf, 4096), 'GOT EOF on cntrl');
- my @of = `lsof -p $pid 2>/dev/null`;
+ if ($INC{'Search/Xapian.pm'} && ($ENV{TEST_RUN_MODE}//1)) {
+ skip 'Search/Xapian.pm pre-loaded (by t/run.perl?)', 1;
+ }
+ my @of = `lsof -p $td->{pid} 2>/dev/null`;
skip('lsof broken', 1) if (!scalar(@of) || $?);
my @xap = grep m!Search/Xapian!, @of;
is_deeply(\@xap, [], 'Xapian not loaded in nntpd');
skip('lsof broken', 1) if (!scalar(@of) || $?);
my @xap = grep m!Search/Xapian!, @of;
is_deeply(\@xap, [], 'Xapian not loaded in nntpd');
setsockopt($s, IPPROTO_TCP, TCP_NODELAY, 1);
syswrite($s, 'HDR List-id 1-');
select(undef, undef, undef, 0.15);
setsockopt($s, IPPROTO_TCP, TCP_NODELAY, 1);
syswrite($s, 'HDR List-id 1-');
select(undef, undef, undef, 0.15);
select(undef, undef, undef, 0.15);
syswrite($s, "\r\n");
$buf = '';
select(undef, undef, undef, 0.15);
syswrite($s, "\r\n");
$buf = '';