tokuhirom's Blog

.pl な config ファイルのコンパイルがとおるかチェックしてみる

こんなかんじか。

use strict;
use warnings;
use Test::More;
use Path::Class;
use IPC::Open3;
use POSIX;

for my $file (grep /\.pl$/, dir('config')->children) {
    my($wtr, $rdr, $err);
    my @cmd = ($^X, (map { "-I$_" } grep { !ref $_ } @INC), '-c', $file);
    my $pid = open3($wtr, $rdr, $err, @cmd);
    waitpid($pid, 0);
    ok((POSIX::WIFEXITED($?) && POSIX::WEXITSTATUS($?) == 0), $file);
}
done_testing;