summaryrefslogtreecommitdiff
path: root/t/Utils.pm
diff options
context:
space:
mode:
Diffstat (limited to 't/Utils.pm')
-rw-r--r--t/Utils.pm39
1 files changed, 39 insertions, 0 deletions
diff --git a/t/Utils.pm b/t/Utils.pm
new file mode 100644
index 0000000..f59983c
--- /dev/null
+++ b/t/Utils.pm
@@ -0,0 +1,39 @@
+package t::Utils;
+use base qw(Exporter);
+
+our @EXPORT = qw(write_cpanfile write_files);
+
+sub write_cpanfile {
+ write_files('cpanfile' => $_[0]);
+}
+
+sub write_files {
+ my %files = @_;
+
+ my $dir = "t/sample-" . rand(100000);
+ mkdir $dir;
+ chdir $dir;
+
+ for my $file (keys %files) {
+ open my $fh, ">", $file or die $!;
+ print $fh $files{$file};
+ }
+
+ return Remover->new($dir, [ keys %files ]);
+}
+
+package
+ Remover;
+sub new {
+ bless { dir => $_[1], files => $_[2] }, $_[0];
+}
+
+sub DESTROY {
+ my $self = shift;
+ for my $file (@{$self->{files}}) {
+ unlink $file;
+ }
+ chdir "../..";
+ rmdir $self->{dir};
+}
+