Sha256: 74db266a90cd04504c3ea32b869207b7c741ab66dc1815975d75bd7b4525de9d
Contents?: true
Size: 1.51 KB
Versions: 3
Compression:
Stored size: 1.51 KB
Contents
#![warn(rust_2018_idioms)] #![cfg(all(feature = "full", not(target_os = "wasi")))] // WASI does not support all fs operations use tokio::fs; use std::io::Write; use tempfile::tempdir; #[tokio::test] #[cfg_attr(miri, ignore)] // No `linkat` in miri. async fn test_hard_link() { let dir = tempdir().unwrap(); let src = dir.path().join("src.txt"); let dst = dir.path().join("dst.txt"); std::fs::File::create(&src) .unwrap() .write_all(b"hello") .unwrap(); fs::hard_link(&src, &dst).await.unwrap(); std::fs::File::create(&src) .unwrap() .write_all(b"new-data") .unwrap(); let content = fs::read(&dst).await.unwrap(); assert_eq!(content, b"new-data"); // test that this is not a symlink: assert!(fs::read_link(&dst).await.is_err()); } #[cfg(unix)] #[tokio::test] async fn test_symlink() { let dir = tempdir().unwrap(); let src = dir.path().join("src.txt"); let dst = dir.path().join("dst.txt"); std::fs::File::create(&src) .unwrap() .write_all(b"hello") .unwrap(); fs::symlink(&src, &dst).await.unwrap(); std::fs::File::create(&src) .unwrap() .write_all(b"new-data") .unwrap(); let content = fs::read(&dst).await.unwrap(); assert_eq!(content, b"new-data"); let read = fs::read_link(dst.clone()).await.unwrap(); assert!(read == src); let symlink_meta = fs::symlink_metadata(dst.clone()).await.unwrap(); assert!(symlink_meta.file_type().is_symlink()); }
Version data entries
3 entries across 3 versions & 1 rubygems