15
15
extern crate glob;
16
16
extern crate tempdir;
17
17
18
- use glob:: glob;
18
+ use glob:: { glob, glob_with } ;
19
19
use std:: env;
20
20
use std:: fs;
21
21
use std:: path:: PathBuf ;
@@ -35,6 +35,10 @@ fn main() {
35
35
glob ( pattern) . unwrap ( ) . map ( |r| r. unwrap ( ) ) . collect ( )
36
36
}
37
37
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
+
38
42
let root = TempDir :: new ( "glob-tests" ) ;
39
43
let root = root. ok ( ) . expect ( "Should have created a temp directory" ) ;
40
44
assert ! ( env:: set_current_dir( root. path( ) ) . is_ok( ) ) ;
@@ -307,6 +311,27 @@ fn main() {
307
311
vec!( PathBuf :: from( "bbb/specials/]" ) )
308
312
) ;
309
313
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
+
310
335
if env:: consts:: FAMILY != "windows" {
311
336
assert_eq ! (
312
337
glob_vec( "bbb/specials/[*]" ) ,
0 commit comments