1515extern crate glob;
1616extern crate tempdir;
1717
18- use glob:: glob;
18+ use glob:: { glob, glob_with } ;
1919use std:: env;
2020use std:: fs;
2121use std:: path:: PathBuf ;
@@ -35,6 +35,10 @@ fn main() {
3535 glob ( pattern) . unwrap ( ) . map ( |r| r. unwrap ( ) ) . collect ( )
3636 }
3737
38+ fn glob_with_vec ( pattern : & str , options : glob:: MatchOptions ) -> Vec < PathBuf > {
39+ glob_with ( pattern, options) . unwrap ( ) . map ( |r| r. unwrap ( ) ) . collect ( )
40+ }
41+
3842 let root = TempDir :: new ( "glob-tests" ) ;
3943 let root = root. ok ( ) . expect ( "Should have created a temp directory" ) ;
4044 assert ! ( env:: set_current_dir( root. path( ) ) . is_ok( ) ) ;
@@ -307,6 +311,27 @@ fn main() {
307311 vec!( PathBuf :: from( "bbb/specials/]" ) )
308312 ) ;
309313
314+ mk_file ( "i" , true ) ;
315+ mk_file ( "i/qwe" , true ) ;
316+ mk_file ( "i/qwe/.aaa" , false ) ;
317+ mk_file ( "i/qwe/.bbb" , true ) ;
318+ mk_file ( "i/qwe/.bbb/ccc" , false ) ;
319+ mk_file ( "i/qwe/.bbb/.ddd" , false ) ;
320+ mk_file ( "i/qwe/eee" , false ) ;
321+
322+ let options = glob:: MatchOptions {
323+ case_sensitive : false ,
324+ require_literal_separator : true ,
325+ require_literal_leading_dot : true ,
326+ } ;
327+ assert_eq ! ( glob_with_vec( "i/**/*a*" , options) , Vec :: <PathBuf >:: new( ) ) ;
328+ assert_eq ! ( glob_with_vec( "i/**/*c*" , options) , Vec :: <PathBuf >:: new( ) ) ;
329+ assert_eq ! ( glob_with_vec( "i/**/*d*" , options) , Vec :: <PathBuf >:: new( ) ) ;
330+ assert_eq ! (
331+ glob_with_vec( "i/**/*e*" , options) ,
332+ vec!( PathBuf :: from( "i/qwe" ) , PathBuf :: from( "i/qwe/eee" ) )
333+ ) ;
334+
310335 if env:: consts:: FAMILY != "windows" {
311336 assert_eq ! (
312337 glob_vec( "bbb/specials/[*]" ) ,
0 commit comments