use IO::Handle;
eval "use Test::WWW::Mechanize";
if($@) {
plan skip_all => 'Test::WWW::Mechanize not installed';
exit;
}
sub start_proggie {
my ($filename) = @_;
*STDERR = *STDOUT;
my $kid_pid = open(my $kid_out, '-|');
die "Unable to fork!" unless defined($kid_pid);
if($kid_pid) {
$kid_out->autoflush;
return ($kid_out, $kid_pid);
} else {
if(-e $filename) {
do $filename or die "Unable to eval $filename! $@";
} else {
die "I can't find '$filename'!";
}
exit;
}
}
sub get_proggie_server_ok {
my ($kid_out) = @_;
my $server = <$kid_out>;
chomp $server;
if($server =~ /^Please contact me at: http:\/\/[^:]+:(\d+)/) {
$server = "http://localhost:$1/";
pass("Server started");
} else {
fail("Server started");
die;
}
return $server;
}
1;