diff options
Diffstat (limited to 'tvix/nix-compat/src/nar/writer/test.rs')
-rw-r--r-- | tvix/nix-compat/src/nar/writer/test.rs | 103 |
1 files changed, 49 insertions, 54 deletions
diff --git a/tvix/nix-compat/src/nar/writer/test.rs b/tvix/nix-compat/src/nar/writer/test.rs index 7b1dd1a2a96e..d7f18a49af34 100644 --- a/tvix/nix-compat/src/nar/writer/test.rs +++ b/tvix/nix-compat/src/nar/writer/test.rs @@ -11,16 +11,14 @@ fn symlink() { } #[cfg(feature = "async")] -#[test] -fn symlink_async() { +#[tokio::test] +async fn symlink_async() { let mut buf = vec![]; - futures::executor::block_on(async { - let node = nar::writer::r#async::open(&mut buf).await.unwrap(); - node.symlink("/nix/store/somewhereelse".as_bytes()) - .await - .unwrap(); - }); + let node = nar::writer::r#async::open(&mut buf).await.unwrap(); + node.symlink("/nix/store/somewhereelse".as_bytes()) + .await + .unwrap(); assert_eq!(include_bytes!("../tests/symlink.nar"), buf.as_slice()); } @@ -42,22 +40,22 @@ fn file() { } #[cfg(feature = "async")] -#[test] -fn file_async() { +#[tokio::test] +async fn file_async() { + use std::io::Cursor; + let mut buf = vec![]; - futures::executor::block_on(async { - let node = nar::writer::r#async::open(&mut buf).await.unwrap(); + let node = nar::writer::r#async::open(&mut buf).await.unwrap(); - let file_contents = "Hello World!".to_string(); - node.file( - false, - file_contents.len() as u64, - &mut futures::io::Cursor::new(file_contents), - ) - .await - .unwrap(); - }); + let file_contents = "Hello World!".to_string(); + node.file( + false, + file_contents.len() as u64, + &mut Cursor::new(file_contents), + ) + .await + .unwrap(); assert_eq!(include_bytes!("../tests/helloworld.nar"), buf.as_slice()); } @@ -93,41 +91,38 @@ fn complicated() { } #[cfg(feature = "async")] -#[test] -fn complicated_async() { +#[tokio::test] +async fn complicated_async() { + use std::io::Cursor; + let mut buf = vec![]; - futures::executor::block_on(async { - let node = nar::writer::r#async::open(&mut buf).await.unwrap(); - - let mut dir_node = node.directory().await.unwrap(); - - let e = dir_node.entry(".keep".as_bytes()).await.unwrap(); - e.file(false, 0, &mut futures::io::Cursor::new([])) - .await - .expect("read .keep must succeed"); - - let e = dir_node.entry("aa".as_bytes()).await.unwrap(); - e.symlink("/nix/store/somewhereelse".as_bytes()) - .await - .expect("symlink must succeed"); - - let e = dir_node.entry("keep".as_bytes()).await.unwrap(); - let mut subdir_node = e.directory().await.expect("directory must succeed"); - - let e_sub = subdir_node - .entry(".keep".as_bytes()) - .await - .expect("subdir entry must succeed"); - e_sub - .file(false, 0, &mut futures::io::Cursor::new([])) - .await - .unwrap(); - - // close the subdir, and then the dir, which is required. - subdir_node.close().await.unwrap(); - dir_node.close().await.unwrap(); - }); + let node = nar::writer::r#async::open(&mut buf).await.unwrap(); + + let mut dir_node = node.directory().await.unwrap(); + + let e = dir_node.entry(".keep".as_bytes()).await.unwrap(); + e.file(false, 0, &mut Cursor::new([])) + .await + .expect("read .keep must succeed"); + + let e = dir_node.entry("aa".as_bytes()).await.unwrap(); + e.symlink("/nix/store/somewhereelse".as_bytes()) + .await + .expect("symlink must succeed"); + + let e = dir_node.entry("keep".as_bytes()).await.unwrap(); + let mut subdir_node = e.directory().await.expect("directory must succeed"); + + let e_sub = subdir_node + .entry(".keep".as_bytes()) + .await + .expect("subdir entry must succeed"); + e_sub.file(false, 0, &mut Cursor::new([])).await.unwrap(); + + // close the subdir, and then the dir, which is required. + subdir_node.close().await.unwrap(); + dir_node.close().await.unwrap(); assert_eq!(include_bytes!("../tests/complicated.nar"), buf.as_slice()); } |