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( ) ) ;
@@ -288,6 +292,26 @@ fn main() {
288
292
vec!( PathBuf :: from( "bbb/specials/]" ) )
289
293
) ;
290
294
295
+ mk_file ( "i" , true ) ;
296
+ mk_file ( "i/qwe" , true ) ;
297
+ mk_file ( "i/qwe/.aaa" , false ) ;
298
+ mk_file ( "i/qwe/.bbb" , true ) ;
299
+ mk_file ( "i/qwe/.bbb/ccc" , false ) ;
300
+ mk_file ( "i/qwe/.bbb/.ddd" , false ) ;
301
+ mk_file ( "i/qwe/eee" , false ) ;
302
+
303
+ let options = glob:: MatchOptions {
304
+ case_sensitive : false ,
305
+ require_literal_separator : true ,
306
+ require_literal_leading_dot : true ,
307
+ } ;
308
+ assert_eq ! ( glob_with_vec( "i/**/*a*" , & options) , Vec :: <PathBuf >:: new( ) ) ;
309
+ assert_eq ! ( glob_with_vec( "i/**/*c*" , & options) , Vec :: <PathBuf >:: new( ) ) ;
310
+ assert_eq ! ( glob_with_vec( "i/**/*d*" , & options) , Vec :: <PathBuf >:: new( ) ) ;
311
+ assert_eq ! ( glob_with_vec( "i/**/*e*" , & options) , vec!(
312
+ PathBuf :: from( "i/qwe/eee" )
313
+ ) ) ;
314
+
291
315
if env:: consts:: FAMILY != "windows" {
292
316
assert_eq ! (
293
317
glob_vec( "bbb/specials/[*]" ) ,
0 commit comments