summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/tests/fs/futimens.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /vendor/rustix/tests/fs/futimens.rs
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/rustix/tests/fs/futimens.rs')
-rw-r--r--vendor/rustix/tests/fs/futimens.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/rustix/tests/fs/futimens.rs b/vendor/rustix/tests/fs/futimens.rs
new file mode 100644
index 000000000..81f8b8a27
--- /dev/null
+++ b/vendor/rustix/tests/fs/futimens.rs
@@ -0,0 +1,42 @@
+#[cfg(not(any(target_os = "redox", target_os = "wasi")))]
+#[test]
+fn test_futimens() {
+ use rustix::fs::{cwd, fstat, futimens, openat, Mode, OFlags, Timespec, Timestamps};
+
+ let tmp = tempfile::tempdir().unwrap();
+ let dir = openat(cwd(), tmp.path(), OFlags::RDONLY, Mode::empty()).unwrap();
+
+ let foo = openat(
+ &dir,
+ "foo",
+ OFlags::CREATE | OFlags::WRONLY | OFlags::CLOEXEC,
+ Mode::empty(),
+ )
+ .unwrap();
+
+ let times = Timestamps {
+ last_access: Timespec {
+ tv_sec: 44000,
+ tv_nsec: 45000,
+ },
+ last_modification: Timespec {
+ tv_sec: 46000,
+ tv_nsec: 47000,
+ },
+ };
+ futimens(&foo, &times).unwrap();
+
+ let after = fstat(&foo).unwrap();
+
+ assert_eq!(times.last_modification.tv_sec as u64, after.st_mtime as u64);
+ #[cfg(not(target_os = "netbsd"))]
+ assert_eq!(
+ times.last_modification.tv_nsec as u64,
+ after.st_mtime_nsec as u64
+ );
+ #[cfg(target_os = "netbsd")]
+ assert_eq!(
+ times.last_modification.tv_nsec as u64,
+ after.st_mtimensec as u64
+ );
+}