@@ -13,21 +13,27 @@ use File::Temp qw/tempfile tempdir/;
13
13
14
14
note " -------------- REAL MODE --------------" ;
15
15
my $temp_dir = tempdir( CLEANUP => 1 );
16
+ ok( -d $temp_dir , " $temp_dir is there" );
16
17
$! = 0;
17
18
is( unlink ($temp_dir ), 0, " unlink on a dir fails" );
18
19
my $unlink_dir_errorno = $! + 0;
20
+ SKIP: {
21
+ skip q{ This docker container doesn't emit $! failures reliably.} , 1 if on_broken_docker();
22
+ ok( $unlink_dir_errorno , " unlink /dir is non-zero ($unlink_dir_errorno )" );
23
+ }
19
24
20
25
use Test::MockFile ();
21
26
22
27
note " -------------- MOCK MODE --------------" ;
23
28
my @mock ;
24
29
my $file = Test::MockFile-> file( ' /file' , " " );
25
- my $dir = Test::MockFile-> dir( ' /dir' , [] );
30
+ my $dir = Test::MockFile-> dir( ' /dir' , [] );
26
31
my $link = Test::MockFile-> symlink ( ' /link' , ' /tonowhere' );
27
32
28
33
is( $link -> unlink , 1, " unlink /link works." );
29
34
is( $link -> exists , 0, " /link is now gone" );
30
- {
35
+ SKIP: {
36
+ skip q{ This docker container doesn't emit $! failures reliably.} , 2 if on_broken_docker();
31
37
local $! ;
32
38
is( $dir -> unlink , 0, " unlink /dir doesn't work." );
33
39
is( $! + 0, $unlink_dir_errorno , " ... and throws a \$\! " );
@@ -61,3 +67,9 @@ is( $file->atime, 1234, "atime is set to 1234." ) or diag $file->atime;
61
67
62
68
done_testing();
63
69
exit ;
70
+
71
+ sub on_broken_docker {
72
+ return 0 if $] > 5.019;
73
+ return 0 unless -f ' /.dockerenv' ;
74
+ return 1;
75
+ }
0 commit comments