summaryrefslogtreecommitdiffstats
path: root/t/lib/Test/PMCR.pm
diff options
context:
space:
mode:
Diffstat (limited to 't/lib/Test/PMCR.pm')
-rw-r--r--t/lib/Test/PMCR.pm35
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;