diff options
Diffstat (limited to 't/Utils.pm')
-rw-r--r-- | t/Utils.pm | 39 |
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}; +} + |