plan
tests
=> 5;
ok 1;
my
$dig
= `which dig 2>/dev/null`;
if
(!
$dig
) {
die
"dig program needed for testing"
;
}
chomp
$dig
;
ok 1;
sub
Net::DNSServer::post_process_request_hook {
my
$self
=
shift
;
$self
->server_close();
}
my
$resolver
= new Net::DNSServer::Proxy;
ok
$resolver
;
$| = 1;
my
$pid
=
fork
();
if
(!
defined
$pid
) {
die
"Fork failed!"
;
}
my
$test_port
= 2053;
if
(!
$pid
) {
local
@ARGV
=(
"--Pidfile"
=>
"test.pid"
,
"--port"
=>
$test_port
,
"--foreground"
);
alarm
(60);
$SIG
{ALRM} =
sub
{
kill
"TERM"
, $$};
run Net::DNSServer {
priority
=> [
$resolver
],
port
=>
$test_port
,
};
exit
;
}
eval
q{
END { kill "TERM", $pid }
;
};
sleep
2;
my
$test
= `dig \@127.0.0.1 . ns -p
$test_port
`;
ok
$test
;
if
(
$test
=~ /^\.\s+/m) {
ok 1;
}
else
{
die
"dig failed:\n$test"
;
}