@@ -70,14 +70,28 @@ dies-ok { find(:dir<t/dir1>, :type<foo>) }, "dies on incorrect type";
7070my $skip-first = True;
7171my $throw = True;
7272
73- #follow-symlinks
74- $res = find(:dir<t/dir2>);
75- @test = $res.map({ .Str }).sort;
76- equals @test, <t/dir2/file.foo t/dir2/symdir t/dir2/symdir/empty_file t/dir2/symdir/file.bar>, 'follow-syminks is True';
73+ # follow-symlinks
74+ my $symlink-dir := $*PROGRAM.sibling("dir2/symdir");
75+ symlink($*PROGRAM.sibling("dir1/another_dir"), $symlink-dir);
76+ if $symlink-dir.e {
77+ $res = find(:dir<t/dir2>);
78+ @test = $res.map({ .Str }).sort;
79+ equals @test,
80+ <t/dir2/file.foo t/dir2/symdir t/dir2/symdir/empty_file t/dir2/symdir/file.bar>,
81+ 'follow-syminks is True';
82+
83+ $res = find(:dir<t/dir2>, :!follow-symlinks);
84+ @test = $res.map({ .Str }).sort;
85+ equals @test,
86+ <t/dir2/file.foo t/dir2/symdir>,
87+ 'follow-symlinks is False';
88+
89+ unlink $symlink-dir; # cleanup for the next test run, just in case
90+ }
7791
78- $res = find(:dir<t/dir2>, follow-symlinks => False);
79- @test = $res.map({ .Str }).sort ;
80- equals @test, <t/dir2/file.foo t/dir2/symdir>, 'follow-symlinks is False';
92+ else {
93+ pass "Cannot check symlinks on dirs in this OS" for ^2 ;
94+ }
8195
8296# Wrap dir to throw when we want it to.
8397my $w = &dir.wrap(sub ($_) {
0 commit comments