@@ -44,6 +44,19 @@ fn main() {
44
44
}
45
45
}
46
46
47
+ fn mk_symlink_dir ( original : & str , link : & str ) {
48
+ #[ cfg( unix) ]
49
+ {
50
+ use std:: os:: unix:: fs:: symlink;
51
+ symlink ( original, link) . unwrap ( ) ;
52
+ }
53
+ #[ cfg( windows) ]
54
+ {
55
+ use std:: os:: windows:: fs:: symlink_dir;
56
+ symlink_dir ( original, link) . unwrap ( ) ;
57
+ }
58
+ }
59
+
47
60
fn glob_vec ( pattern : & str ) -> Vec < PathBuf > {
48
61
glob ( pattern) . unwrap ( ) . map ( |r| r. unwrap ( ) ) . collect ( )
49
62
}
@@ -99,6 +112,22 @@ fn main() {
99
112
mk_file ( "r/three" , true ) ;
100
113
mk_file ( "r/three/c.md" , false ) ;
101
114
115
+ mk_file ( "dirsym" , true ) ;
116
+ mk_symlink_dir ( root. path ( ) . join ( "r" ) . to_str ( ) . unwrap ( ) , "dirsym/link" ) ;
117
+
118
+ assert_eq ! (
119
+ glob_vec( "dirsym/**/*.md" ) ,
120
+ vec!(
121
+ PathBuf :: from( "dirsym/link/another/a.md" ) ,
122
+ PathBuf :: from( "dirsym/link/current_dir.md" ) ,
123
+ PathBuf :: from( "dirsym/link/one/a.md" ) ,
124
+ PathBuf :: from( "dirsym/link/one/another/a.md" ) ,
125
+ PathBuf :: from( "dirsym/link/one/another/deep/spelunking.md" ) ,
126
+ PathBuf :: from( "dirsym/link/three/c.md" ) ,
127
+ PathBuf :: from( "dirsym/link/two/b.md" )
128
+ )
129
+ ) ;
130
+
102
131
// all recursive entities
103
132
assert_eq ! (
104
133
glob_vec( "r/**" ) ,
0 commit comments