Text-MacroScript
view release on metacpan or search on metacpan
t/macrodir.t view on Meta::CPAN
$src->mkpath;
path($src, "2")->mkpath;
chdir($src);
run_tests();
chdir("../..");
$ROOT->remove_tree;
done_testing();
#------------------------------------------------------------------------------
# run tests from test~/src directory
sub run_tests {
# expand all files, not verbose
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
run_test({-args => ""});
# -v|--verbose
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
run_test({-args => "-v"});
run_test({-args => "--verbose"});
# source dir argument
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
run_test({-src_dir => "2", -args => "2"});
run_test({-src_dir => "2", -args => "-v 2"});
run_test({-src_dir => "2", -args => "-v -- 2"});
# -d, --dir target dir
diag 'Issue #9: macrodir -d: does not replicate source tree in target directory';
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
#run_test({-target_dir => $TARGET, -args => "-v -d $TARGET"});
#run_test({-target_dir => $TARGET, -args => "-v --dir $TARGET"});
# -f, --force
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
run_test({-force => 1, -args => "-v -f"});
run_test({-force => 1, -args => "-v --force"});
# -F, --file
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
run_test({-macro_file => "newmacros", -args => "-v -F newmacros"});
run_test({-macro_file => "newmacros", -args => "-v --file newmacros"});
# -p, --prep
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
run_test({-args => "-v -p"});
run_test({-args => "-v --prep"});
# -h, --help
test_help("-h");
test_help("--help");
}
#------------------------------------------------------------------------------
# run one test
sub run_test {
my($opts) = @_;
$opts->{caller_line} = (caller)[2];
# set flags
for ($opts->{-args}) {
$opts->{-verbose} = /-v\b|--verbose\b/ ? 1 : 0;
diag 'Issue #10: macrodir always in embedded mode, ignoring -p option';
#$opts->{-embedded} = /-p\b|--prep\b/ ? 1 : 0;
$opts->{-embedded} = /-p\b|--prep\b/ ? 0 : 1;
}
make_src_files($opts);
run_macrodir($opts);
check_result_files($opts);
# only update what needed
if ($opts->{-verbose}) {
if ($opts->{-force}) {
run_macrodir($opts);
check_result_files($opts);
}
elsif (! $opts->{-src_dir} && ! $opts->{-target_dir} ) {
unlink $opts->{txt_file}[0];
while (-M $opts->{txt_file}[1] <= -M $opts->{m_file}[1]) {
usleep 250;
$opts->{m_file}[1]->touch;
}
for (@{$opts->{output}}[ 2 .. $#{$opts->{output}} ]) {
s/Expanding.* to (.+)/$1 is up to date/;
}
run_macrodir($opts);
check_result_files($opts);
}
}
}
#------------------------------------------------------------------------------
# build source data
sub make_src_files {
my($opts) = @_;
# remove and create empty target dir
my $target = path($TARGET);
$target->remove_tree;
$target->mkpath;
# create source files
$opts->{output} = [];
for my $id (0 .. $#PRONOUNS) {
$opts->{txt_file}[$id] = path(grep {defined}
$DATA_DIRS[$id],
"file$id.txt");
unlink $opts->{txt_file}[$id];
$opts->{m_file}[$id] = path($opts->{txt_file}[$id].".m");
if ($opts->{-target_dir}) {
$opts->{txt_file}[$id] = path($opts->{-target_dir},
$opts->{txt_file}[$id]);
( run in 0.648 second using v1.01-cache-2.11-cpan-5a3173703d6 )