use Test::Simple 'no_plan'; use strict; use lib './lib'; use File::Trash ':all'; use Cwd; use vars qw($_part $cwd); $cwd = cwd(); #$File::Trash::DEBUG =1; $File::Trash::ABS_TRASH = $cwd.'/t/trash'; $File::Trash::ABS_BACKUP = $cwd.'/t/backup'; system('rm -rf ./t/fileshere'); system('rm -rf ./t/trash'); mkdir './t/fileshere'; mkdir './t/trash'; my @files = qw(./t/fileshere/a.tmp ./t/fileshere/b.tmp ./t/fileshere/c.tmp); ok_part('make files and trash one by one'); _makefiles(); for my $rel (@files){ my $newpath = trash($rel) or die($File::Trash::errstr); ok( $newpath,"trash() $rel" ); ok( ! -f $rel,"now rel !-f"); ok( -f $newpath,"now -f newpath"); my $untrash = restore($newpath) or die($File::Trash::errstr); ok($untrash,'restore()'); ok( -f $rel,"now rel -f"); ok( ! -f $newpath,"now !-f newpath"); } ok_part("untrash failures.. expected.."); my @trashed = map { trash($_) } @files; ok (( scalar @trashed), 'trashed works '); ok( _makefiles(), 'made files again.'); for my $trashed (@trashed){ $trashed=~/trash\// or die; ok -f $trashed, "-f $trashed"; ok( (! restore($trashed)),"cannot restore() $trashed"); print STDERR " # err is : '$File::Trash::errstr'\n"; ok -f $trashed, "-f $trashed"; print STDERR "\n---\n"; } system('rm -rf t/fileshere'); sub _makefiles { print STDERR "\n # making files # \n\n"; for my $rel (@files){ system('touch',$rel) ==0 or die("cant touch $rel, $!"); } 1; } sub ok_part { printf STDERR "\n\n===================\nPART %s %s\n==================\n\n", $_part++, "@_"; }