diff options
-rw-r--r-- | test/test_stat.rs | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/test/test_stat.rs b/test/test_stat.rs index ac4a8f08..023cb569 100644 --- a/test/test_stat.rs +++ b/test/test_stat.rs @@ -1,17 +1,12 @@ -use nix::sys::stat::stat; +use nix::sys::stat::{stat, fstat}; -#[test] -fn test_stat() { - use nix::fcntl::open; - use nix::unistd::{close, unlink}; - use nix::fcntl::O_CREAT; - use nix::sys::stat::S_IWUSR; - - let filename = b"target/foo.txt"; - let fd_res = open(filename, O_CREAT, S_IWUSR).unwrap(); - close(fd_res).unwrap(); //.ok().unwrap()); // close right here. We use the file only for the stat test - let stat_result = stat(filename); +use nix::fcntl::open; +use nix::unistd::{close, unlink}; +use nix::fcntl::O_CREAT; +use nix::sys::stat::{FileStat, S_IWUSR}; +use nix::NixResult; +fn assert_stat_results(stat_result: NixResult<FileStat>) { match stat_result { Ok(stats) => { assert!(stats.st_dev > 0); // must be positive integer, exact number machine dependent @@ -27,5 +22,20 @@ fn test_stat() { } Err(_) => panic!("stat call failed") // if stats system call fails, something is seriously wrong on that machine } +} + + +#[test] +fn test_stat_and_fstat() { + let filename = b"target/foo.txt"; + let fd = open(filename, O_CREAT, S_IWUSR).unwrap(); // create empty file + + let stat_result = stat(filename); + assert_stat_results(stat_result); + + let fstat_result = fstat(fd); + assert_stat_results(fstat_result); + + close(fd).unwrap(); unlink(filename).unwrap(); } |