Blame t/00-load.t

Packit e6c8bb
# $Id: 00-load.t 1611 2018-01-02 09:41:24Z willem $	-*-perl-*-
Packit e6c8bb
Packit e6c8bb
use strict;
Packit e6c8bb
use Test::More;
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
my @module = qw(
Packit e6c8bb
	Net::DNS
Packit e6c8bb
	Net::DNS::SEC
Packit e6c8bb
	Data::Dumper
Packit e6c8bb
	Digest::BubbleBabble
Packit e6c8bb
	Digest::GOST
Packit e6c8bb
	Digest::HMAC
Packit e6c8bb
	Digest::MD5
Packit e6c8bb
	Digest::SHA
Packit e6c8bb
	Encode
Packit e6c8bb
	File::Spec
Packit e6c8bb
	IO::File
Packit e6c8bb
	IO::Select
Packit e6c8bb
	IO::Socket
Packit e6c8bb
	IO::Socket::INET
Packit e6c8bb
	IO::Socket::INET6
Packit e6c8bb
	IO::Socket::IP
Packit e6c8bb
	MIME::Base64
Packit e6c8bb
	Net::LibIDN
Packit e6c8bb
	Net::LibIDN2
Packit e6c8bb
	PerlIO
Packit e6c8bb
	Scalar::Util
Packit e6c8bb
	Socket
Packit e6c8bb
	Time::Local
Packit e6c8bb
	Win32::API
Packit e6c8bb
	Win32::IPHelper
Packit e6c8bb
	Win32::TieRegistry
Packit e6c8bb
	);
Packit e6c8bb
Packit e6c8bb
my @diag;
Packit e6c8bb
foreach my $module (@module) {
Packit e6c8bb
	eval "require $module";
Packit e6c8bb
	my $version = eval { $module->VERSION } || next;
Packit e6c8bb
	push @diag, sprintf "%-25s  %s", $module, $version;
Packit e6c8bb
}
Packit e6c8bb
diag join "\n\t", "\nThese tests were run using:", @diag;
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
plan tests => 20 + scalar(@Net::DNS::EXPORT);
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
use_ok('Net::DNS');
Packit e6c8bb
Packit e6c8bb
is( Net::DNS->version, $Net::DNS::VERSION, 'Net::DNS->version' );
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
#
Packit e6c8bb
# Check on-demand loading using this (incomplete) list of RR packages
Packit e6c8bb
my @rrs = qw( A AAAA CNAME MX NS NULL PTR SOA TXT );
Packit e6c8bb
Packit e6c8bb
sub is_rr_loaded {
Packit e6c8bb
	my $rr = shift;
Packit e6c8bb
	return $INC{"Net/DNS/RR/$rr.pm"} ? 1 : 0;
Packit e6c8bb
}
Packit e6c8bb
Packit e6c8bb
#
Packit e6c8bb
# Make sure that we start with none of the RR packages loaded
Packit e6c8bb
foreach my $rr (@rrs) {
Packit e6c8bb
	ok( !is_rr_loaded($rr), "not yet loaded Net::DNS::RR::$rr" );
Packit e6c8bb
}
Packit e6c8bb
Packit e6c8bb
#
Packit e6c8bb
# Check that each RR package is loaded on demand
Packit e6c8bb
local $SIG{__WARN__} = sub { };					# suppress warnings
Packit e6c8bb
Packit e6c8bb
foreach my $rr (@rrs) {
Packit e6c8bb
	my $object = eval { new Net::DNS::RR( name => '.', type => $rr ); };
Packit e6c8bb
	diag($@) if $@;						# report exceptions
Packit e6c8bb
Packit e6c8bb
	ok( is_rr_loaded($rr), "loaded package Net::DNS::RR::$rr" );
Packit e6c8bb
}
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
#
Packit e6c8bb
# Check that Net::DNS symbol table was imported correctly
Packit e6c8bb
{
Packit e6c8bb
	no strict 'refs';
Packit e6c8bb
	foreach my $sym (@Net::DNS::EXPORT) {
Packit e6c8bb
		ok( defined &{$sym}, "$sym is imported" );
Packit e6c8bb
	}
Packit e6c8bb
}
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
exit;
Packit e6c8bb
Packit e6c8bb
__END__
Packit e6c8bb