diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2022-10-28 20:00:55 -0700 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2022-10-28 20:00:55 -0700 | 
| commit | f99cff96758176701656285712246173db76ac58 (patch) | |
| tree | 10a4f8c167c055b39a96a342f9a9334ec877414e /iroh-car/tests | |
| parent | 4b4eb3aa819ee16cd8d7074cfd21d94deab2276d (diff) | |
| download | adenosine-f99cff96758176701656285712246173db76ac58.tar.gz adenosine-f99cff96758176701656285712246173db76ac58.zip | |
copy in iroh-car from iroh repo, verbatim
Diffstat (limited to 'iroh-car/tests')
| -rw-r--r-- | iroh-car/tests/car_file_test.rs | 74 | ||||
| -rw-r--r-- | iroh-car/tests/carv1_basic.car | bin | 0 -> 715 bytes | |||
| -rw-r--r-- | iroh-car/tests/testv1.car | bin | 0 -> 5090 bytes | 
3 files changed, 74 insertions, 0 deletions
| diff --git a/iroh-car/tests/car_file_test.rs b/iroh-car/tests/car_file_test.rs new file mode 100644 index 0000000..28340d4 --- /dev/null +++ b/iroh-car/tests/car_file_test.rs @@ -0,0 +1,74 @@ +use futures::TryStreamExt; +use iroh_car::*; +use tokio::fs::{self, File}; +use tokio::io::BufReader; + +#[tokio::test] +async fn roundtrip_carv1_test_file() { +    let file = File::open("tests/testv1.car").await.unwrap(); +    let buf_reader = BufReader::new(file); + +    let car_reader = CarReader::new(buf_reader).await.unwrap(); +    let header = car_reader.header().clone(); +    let files: Vec<_> = car_reader.stream().try_collect().await.unwrap(); +    assert_eq!(files.len(), 35); + +    let mut buffer = Vec::new(); +    let mut writer = CarWriter::new(header, &mut buffer); +    for (cid, data) in &files { +        writer.write(*cid, data).await.unwrap(); +    } +    writer.finish().await.unwrap(); + +    let file = fs::read("tests/testv1.car").await.unwrap(); +    assert_eq!(file, buffer); +} + +#[tokio::test] +async fn roundtrip_carv1_basic_fixtures_file() { +    let file = File::open("tests/carv1_basic.car").await.unwrap(); +    let buf_reader = BufReader::new(file); + +    let car_reader = CarReader::new(buf_reader).await.unwrap(); +    let header = car_reader.header().clone(); + +    assert_eq!( +        car_reader.header().roots(), +        [ +            "bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm" +                .parse() +                .unwrap(), +            "bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm" +                .parse() +                .unwrap() +        ] +    ); + +    let files: Vec<_> = car_reader.stream().try_collect().await.unwrap(); +    assert_eq!(files.len(), 8); + +    let cids = [ +        "bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm", +        "QmNX6Tffavsya4xgBi2VJQnSuqy9GsxongxZZ9uZBqp16d", +        "bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke", +        "QmWXZxVQ9yZfhQxLD35eDR8LiMRsYtHxYqTFCBbJoiJVys", +        "bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4", +        "QmdwjhxpxzcMsR3qUuj7vUL8pbA7MgR3GAxWi2GLHjsKCT", +        "bafkreidbxzk2ryxwwtqxem4l3xyyjvw35yu4tcct4cqeqxwo47zhxgxqwq", +        "bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm", +    ]; + +    for (expected_cid, (cid, _)) in cids.iter().zip(&files) { +        assert_eq!(*cid, expected_cid.parse().unwrap()); +    } + +    let mut buffer = Vec::new(); +    let mut writer = CarWriter::new(header, &mut buffer); +    for (cid, data) in &files { +        writer.write(*cid, data).await.unwrap(); +    } +    writer.finish().await.unwrap(); + +    let file = fs::read("tests/carv1_basic.car").await.unwrap(); +    assert_eq!(file, buffer); +} diff --git a/iroh-car/tests/carv1_basic.car b/iroh-car/tests/carv1_basic.carBinary files differ new file mode 100644 index 0000000..48c67a3 --- /dev/null +++ b/iroh-car/tests/carv1_basic.car diff --git a/iroh-car/tests/testv1.car b/iroh-car/tests/testv1.carBinary files differ new file mode 100644 index 0000000..cdc9a13 --- /dev/null +++ b/iroh-car/tests/testv1.car | 
