App-SuperviseMe
view release on metacpan or search on metacpan
t/00-compile.t view on Meta::CPAN
2425262728293031323334353637383940414243use
IO::Handle;
my
@warnings
;
for
my
$lib
(
@module_files
)
{
# see L<perlfaq8/How can I capture STDERR from an external command?>
my
$stdin
=
''
;
# converted to a gensym by open3
my
$stderr
= IO::Handle->new;
my
$pid
= open3(
$stdin
,
'>&STDERR'
,
$stderr
,
qq{$^X -Mblib -e"require q[$lib]"}
);
binmode
$stderr
,
':crlf'
if
$^O;
# eq 'MSWin32';
waitpid
(
$pid
, 0);
is($? >> 8, 0,
"$lib loaded ok"
);
if
(
my
@_warnings
= <
$stderr
>)
{
warn
@_warnings
;
push
@warnings
,
@_warnings
;
}
}
t/00-compile.t view on Meta::CPAN
484950515253545556575859606162636465666768open
my
$fh
,
'<'
,
$file
or
warn
(
"Unable to open $file: $!"
),
next
;
my
$line
= <
$fh
>;
close
$fh
and skip(
"$file isn't perl"
, 1)
unless
$line
=~ /^
#!.*?\bperl\b\s*(.*)$/;
my
$flags
= $1;
my
$stdin
=
''
;
# converted to a gensym by open3
my
$stderr
= IO::Handle->new;
my
$pid
= open3(
$stdin
,
'>&STDERR'
,
$stderr
,
qq{$^X -Mblib $flags -c $file}
);
binmode
$stderr
,
':crlf'
if
$^O eq
'MSWin32'
;
waitpid
(
$pid
, 0);
is($? >> 8, 0,
"$file compiled ok"
);
# in older perls, -c output is simply the file portion of the path being tested
if
(
my
@_warnings
=
grep
{ !/\bsyntax OK$/ }
grep
{
chomp
;
$_
ne (File::Spec->splitpath(
$file
))[2] } <
$stderr
>)
{
# temporary measure - win32 newline issues?
warn
map
{ _show_whitespace(
$_
) }
@_warnings
;
push
@warnings
,
@_warnings
;
( run in 0.737 second using v1.01-cache-2.11-cpan-5f2e87ce722 )