@@ -11,7 +11,6 @@ use std::path::Path;
11
11
12
12
#[ cfg( not( any( target_os = "netbsd" , target_os = "redox" ) ) ) ]
13
13
use libc:: { S_IFMT , S_IFLNK } ;
14
- #[ cfg( not( target_os = "redox" ) ) ]
15
14
use libc:: mode_t;
16
15
17
16
#[ cfg( not( target_os = "redox" ) ) ]
@@ -312,39 +311,47 @@ fn test_mkdirat_fail() {
312
311
target_os = "ios" ,
313
312
target_os = "macos" ,
314
313
target_os = "redox" ) ) ) ]
315
- fn test_mknod_family ( ) {
314
+ fn test_mknod ( ) {
315
+ use stat:: { lstat, mknod, SFlag } ;
316
+
317
+ let file_name = "test_file" ;
318
+ let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
319
+ let target = tempdir. path ( ) . join ( file_name) ;
320
+ mknod ( & target, SFlag :: S_IFREG , Mode :: S_IRWXU , 0 ) . unwrap ( ) ;
321
+ let mode = lstat ( & target) . unwrap ( ) . st_mode as mode_t ;
322
+ assert ! ( mode & libc:: S_IFREG == libc:: S_IFREG ) ;
323
+ assert ! ( mode & libc:: S_IRWXU == libc:: S_IRWXU ) ;
324
+ }
325
+
326
+ #[ test]
327
+ #[ cfg( not( any( target_os = "freebsd" ,
328
+ target_os = "illumos" ,
329
+ target_os = "ios" ,
330
+ target_os = "macos" ,
331
+ target_os = "redox" ) ) ) ]
332
+ fn test_mknodat ( ) {
316
333
use fcntl:: { AtFlags , OFlag } ;
317
334
use nix:: dir:: Dir ;
318
- use stat:: { fstatat, lstat , mknod , mknodat, SFlag } ;
335
+ use stat:: { fstatat, mknodat, SFlag } ;
319
336
320
337
let file_name = "test_file" ;
321
- {
322
- let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
323
- let target = tempdir. path ( ) . join ( file_name) ;
324
- mknod ( & target, SFlag :: S_IFREG , Mode :: S_IRWXU , 0 ) . unwrap ( ) ;
325
- let mode = lstat ( & target) . unwrap ( ) . st_mode as mode_t ;
326
- assert ! ( mode & libc:: S_IFREG == libc:: S_IFREG ) ;
327
- assert ! ( mode & libc:: S_IRWXU == libc:: S_IRWXU ) ;
328
- }
329
- {
330
- let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
331
- let target_dir = Dir :: open ( tempdir. path ( ) , OFlag :: O_DIRECTORY , Mode :: S_IRWXU ) . unwrap ( ) ;
332
- mknodat (
333
- target_dir. as_raw_fd ( ) ,
334
- file_name,
335
- SFlag :: S_IFREG ,
336
- Mode :: S_IRWXU ,
337
- 0 ,
338
- )
339
- . unwrap ( ) ;
340
- let mode = fstatat (
341
- target_dir. as_raw_fd ( ) ,
342
- file_name,
343
- AtFlags :: AT_SYMLINK_NOFOLLOW ,
344
- )
345
- . unwrap ( )
346
- . st_mode as mode_t ;
347
- assert ! ( mode & libc:: S_IFREG == libc:: S_IFREG ) ;
348
- assert ! ( mode & libc:: S_IRWXU == libc:: S_IRWXU ) ;
349
- }
338
+ let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
339
+ let target_dir = Dir :: open ( tempdir. path ( ) , OFlag :: O_DIRECTORY , Mode :: S_IRWXU ) . unwrap ( ) ;
340
+ mknodat (
341
+ target_dir. as_raw_fd ( ) ,
342
+ file_name,
343
+ SFlag :: S_IFREG ,
344
+ Mode :: S_IRWXU ,
345
+ 0 ,
346
+ )
347
+ . unwrap ( ) ;
348
+ let mode = fstatat (
349
+ target_dir. as_raw_fd ( ) ,
350
+ file_name,
351
+ AtFlags :: AT_SYMLINK_NOFOLLOW ,
352
+ )
353
+ . unwrap ( )
354
+ . st_mode as mode_t ;
355
+ assert ! ( mode & libc:: S_IFREG == libc:: S_IFREG ) ;
356
+ assert ! ( mode & libc:: S_IRWXU == libc:: S_IRWXU ) ;
350
357
}
0 commit comments