#!perl
my
@modules
;
find(
sub
{
return
if
$File::Find::name
!~ /\.pm\z/;
my
$found
=
$File::Find::name
;
$found
=~ s{^lib/}{};
$found
=~ s{[/\\]}{::}g;
$found
=~ s/\.pm$//;
push
@modules
,
$found
;
},
'lib'
,
);
my
@scripts
=
glob
"bin/*"
;
my
$plan
=
scalar
(
@modules
) +
scalar
(
@scripts
);
$plan
? (plan
tests
=>
$plan
) : (plan
skip_all
=>
"no tests to run"
);
{
like(
qx{ $^X -Ilib -e "require $_; print '$_ ok'" }
,
qr/^\s*$_ ok/
s,
"$_ loaded ok"
)
for
sort
@modules
;
SKIP: {
eval
"use Test::Script 1.05; 1;"
;
skip
"Test::Script needed to test script compilation"
,
scalar
(
@scripts
)
if
$@;
foreach
my
$file
(
@scripts
) {
my
$script
=
$file
;
$script
=~ s!.*/!!;
script_compiles(
$file
,
"$script script compiles"
);
}
}
}