summaryrefslogtreecommitdiffstats
path: root/vendor/tokio/tests/fs_dir.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/tokio/tests/fs_dir.rs')
-rw-r--r--vendor/tokio/tests/fs_dir.rs41
1 files changed, 40 insertions, 1 deletions
diff --git a/vendor/tokio/tests/fs_dir.rs b/vendor/tokio/tests/fs_dir.rs
index 21efe8c0e..5f653cb21 100644
--- a/vendor/tokio/tests/fs_dir.rs
+++ b/vendor/tokio/tests/fs_dir.rs
@@ -1,5 +1,5 @@
#![warn(rust_2018_idioms)]
-#![cfg(feature = "full")]
+#![cfg(all(feature = "full", not(tokio_wasi)))] // WASI does not support all fs operations
use tokio::fs;
use tokio_test::{assert_err, assert_ok};
@@ -46,6 +46,27 @@ async fn build_dir() {
}
#[tokio::test]
+#[cfg(unix)]
+async fn build_dir_mode_read_only() {
+ let base_dir = tempdir().unwrap();
+ let new_dir = base_dir.path().join("abc");
+
+ assert_ok!(
+ fs::DirBuilder::new()
+ .recursive(true)
+ .mode(0o444)
+ .create(&new_dir)
+ .await
+ );
+
+ assert!(fs::metadata(new_dir)
+ .await
+ .expect("metadata result")
+ .permissions()
+ .readonly());
+}
+
+#[tokio::test]
async fn remove() {
let base_dir = tempdir().unwrap();
let new_dir = base_dir.path().join("foo");
@@ -85,3 +106,21 @@ async fn read_inherent() {
vec!["aa".to_string(), "bb".to_string(), "cc".to_string()]
);
}
+
+#[tokio::test]
+async fn read_dir_entry_info() {
+ let temp_dir = tempdir().unwrap();
+
+ let file_path = temp_dir.path().join("a.txt");
+
+ fs::write(&file_path, b"Hello File!").await.unwrap();
+
+ let mut dir = fs::read_dir(temp_dir.path()).await.unwrap();
+
+ let first_entry = dir.next_entry().await.unwrap().unwrap();
+
+ assert_eq!(first_entry.path(), file_path);
+ assert_eq!(first_entry.file_name(), "a.txt");
+ assert!(first_entry.metadata().await.unwrap().is_file());
+ assert!(first_entry.file_type().await.unwrap().is_file());
+}