diff options
Diffstat (limited to 't/lib/Test/PMCR.pm')
-rw-r--r-- | t/lib/Test/PMCR.pm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/t/lib/Test/PMCR.pm b/t/lib/Test/PMCR.pm new file mode 100644 index 0000000..c3d930c --- /dev/null +++ b/t/lib/Test/PMCR.pm @@ -0,0 +1,35 @@ +package Test::PMCR; +use strict; +use warnings; + +use File::Copy; +use File::Find; +use File::Spec::Functions 'abs2rel', 'catdir'; +use File::Temp 'tempdir'; + +sub setup_temp_dir { + my ($test) = @_; + + my $dir = tempdir(CLEANUP => 1); + + lib->import($dir); + + my $from_base = catdir(qw(t data), $test); + find(sub { + return if $_ eq '.'; + if (-d) { + my $from = abs2rel($File::Find::name, $from_base); + my $to = catdir($dir, $from); + mkdir($to) || die "couldn't mkdir: $!"; + } + else { + my $from = abs2rel($File::Find::name, $from_base); + my $to = catdir($dir, $from); + copy($_, $to) || die "couldn't copy: $!"; + } + }, $from_base); + + return $dir; +} + +1; |