diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b26e8b..2fbe971 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://book.async.rs/overview ## [Unreleased] +- Expose `fs::create_dir_all` + # [0.99.4] - 2019-08-21 ## Changes diff --git a/src/fs/create_dir_all.rs b/src/fs/create_dir_all.rs index 413f5f6..b63c362 100644 --- a/src/fs/create_dir_all.rs +++ b/src/fs/create_dir_all.rs @@ -1,8 +1,8 @@ use std::fs; -use std::path::{Path, PathBuf}; +use std::path::Path; -use crate::task::blocking; use crate::io; +use crate::task::blocking; /// Creates a new, empty directory and all of its parents if they are missing. /// diff --git a/src/fs/mod.rs b/src/fs/mod.rs index dd3525e..8d98330 100644 --- a/src/fs/mod.rs +++ b/src/fs/mod.rs @@ -32,6 +32,7 @@ pub use std::fs::{FileType, Metadata, Permissions}; pub use canonicalize::canonicalize; pub use copy::copy; pub use create_dir::create_dir; +pub use create_dir_all::create_dir_all; pub use hard_link::hard_link; pub use metadata::metadata; pub use read::read; @@ -49,6 +50,7 @@ pub use write::write; mod canonicalize; mod copy; mod create_dir; +mod create_dir_all; mod dir_builder; mod dir_entry; mod file; diff --git a/tests/io_timeout.rs b/tests/io_timeout.rs new file mode 100644 index 0000000..85a17ab --- /dev/null +++ b/tests/io_timeout.rs @@ -0,0 +1,40 @@ +use std::time::Duration; + +use async_std::io; +use async_std::task; + +#[test] +#[should_panic(expected = "timed out")] +fn io_timeout_timedout() { + task::block_on(async { + io::timeout(Duration::from_secs(1), async { + let stdin = io::stdin(); + let mut line = String::new(); + let _n = stdin.read_line(&mut line).await?; + Ok(()) + }) + .await + .unwrap(); // We should panic with a timeout error + }); +} + +#[test] +#[should_panic(expected = "My custom error")] +fn io_timeout_future_err() { + task::block_on(async { + io::timeout(Duration::from_secs(1), async { + Err::<(), io::Error>(io::Error::new(io::ErrorKind::Other, "My custom error")) + }) + .await + .unwrap(); // We should panic with our own error + }); +} + +#[test] +fn io_timeout_future_ok() { + task::block_on(async { + io::timeout(Duration::from_secs(1), async { Ok(()) }) + .await + .unwrap(); // We shouldn't panic at all + }); +}