@@ -44,6 +44,19 @@ fn main() {
4444 }
4545 }
4646
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+
4760 fn glob_vec ( pattern : & str ) -> Vec < PathBuf > {
4861 glob ( pattern) . unwrap ( ) . map ( |r| r. unwrap ( ) ) . collect ( )
4962 }
@@ -99,6 +112,22 @@ fn main() {
99112 mk_file ( "r/three" , true ) ;
100113 mk_file ( "r/three/c.md" , false ) ;
101114
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+
102131 // all recursive entities
103132 assert_eq ! (
104133 glob_vec( "r/**" ) ,
0 commit comments