]> git.lizzy.rs Git - rust.git/commitdiff
Move posix_fadvise test to new libc test file
authorDavid Cook <divergentdave@gmail.com>
Wed, 29 Jan 2020 00:59:49 +0000 (18:59 -0600)
committerDavid Cook <divergentdave@gmail.com>
Wed, 29 Jan 2020 00:59:49 +0000 (18:59 -0600)
tests/run-pass/fs.rs
tests/run-pass/libc.rs [new file with mode: 0644]

index 43f394bd3274417fe762397f638af478d649346b..81c56e4aafc7ee594e13a1800a40151f66e7d48d 100644 (file)
@@ -1,13 +1,8 @@
 // ignore-windows: File handling is not implemented yet
 // compile-flags: -Zmiri-disable-isolation
 
-#![feature(rustc_private)]
-
-extern crate libc;
-
 use std::fs::{File, remove_file};
 use std::io::{Read, Write, ErrorKind, Result};
-use std::os::unix::io::AsRawFd;
 use std::path::{PathBuf, Path};
 
 fn test_metadata(bytes: &[u8], path: &Path) -> Result<()> {
@@ -45,16 +40,6 @@ fn main() {
     file.read_to_end(&mut contents).unwrap();
     assert_eq!(bytes, contents.as_slice());
 
-    // Test calling posix_fadvise on the file.
-    unsafe {
-        libc::posix_fadvise(
-            file.as_raw_fd(),
-            0,
-            bytes.len() as i64,
-            libc::POSIX_FADV_DONTNEED,
-        );
-    }
-
     // Test that metadata of an absolute path is correct.
     test_metadata(bytes, &path).unwrap();
     // Test that metadata of a relative path is correct.
diff --git a/tests/run-pass/libc.rs b/tests/run-pass/libc.rs
new file mode 100644 (file)
index 0000000..8ba97e2
--- /dev/null
@@ -0,0 +1,35 @@
+// ignore-windows: No libc on Windows
+// compile-flags: -Zmiri-disable-isolation
+
+#![feature(rustc_private)]
+
+extern crate libc;
+
+use std::env::temp_dir;
+use std::fs::{File, remove_file};
+use std::io::Write;
+use std::os::unix::io::AsRawFd;
+
+fn main() {
+    let path = temp_dir().join("miri_test_libc.txt");
+    // Cleanup before test
+    remove_file(&path).ok();
+
+    // Set up an open file
+    let mut file = File::create(&path).unwrap();
+    let bytes = b"Hello, World!\n";
+    file.write(bytes).unwrap();
+
+    // Test calling posix_fadvise on a file.
+    let result = unsafe {
+        libc::posix_fadvise(
+            file.as_raw_fd(),
+            0,
+            bytes.len() as i64,
+            libc::POSIX_FADV_DONTNEED,
+        )
+    };
+    drop(file);
+    remove_file(&path).unwrap();
+    assert_eq!(result, 0);
+}