Skip to content

Commit eef8c9f

Browse files
committed
[git-packetline] All tests for high-level writer pass
1 parent fbffd89 commit eef8c9f

File tree

1 file changed

+36
-32
lines changed

1 file changed

+36
-32
lines changed

git-packetline/tests/async_io/write.rs

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,50 @@ use bstr::ByteSlice;
22
use futures_lite::{future, prelude::*};
33
use git_packetline::Writer;
44

5-
//
6-
// const MAX_DATA_LEN: usize = 65516;
7-
// const MAX_LINE_LEN: usize = 4 + MAX_DATA_LEN;
8-
//
5+
const MAX_DATA_LEN: usize = 65516;
6+
const MAX_LINE_LEN: usize = 4 + MAX_DATA_LEN;
7+
98
#[test]
10-
fn each_write_results_in_one_line() {
9+
fn each_write_results_in_one_line() -> crate::Result {
1110
let buf = future::block_on(async {
1211
let mut w = Writer::new(Vec::new());
1312
w.write_all(b"hello").await?;
1413
w.write(b"world!").await?;
1514
Ok::<_, std::io::Error>(w.into_inner())
16-
})
17-
.unwrap();
15+
})?;
1816
assert_eq!(buf.as_bstr(), b"0009hello000aworld!".as_bstr());
19-
// Ok(())
17+
Ok(())
18+
}
19+
20+
#[test]
21+
fn write_text_and_write_binary() -> crate::Result {
22+
let buf = future::block_on(async {
23+
let mut w = Writer::new(Vec::new()).text_mode();
24+
w.write_all(b"hello").await?;
25+
w = w.binary_mode();
26+
w.write(b"world").await?;
27+
Ok::<_, std::io::Error>(w.into_inner())
28+
})?;
29+
assert_eq!(buf.as_bstr(), b"000ahello\n0009world".as_bstr());
30+
Ok(())
2031
}
21-
//
22-
// #[test]
23-
// fn write_text_and_write_binary() -> crate::Result {
24-
// let mut w = Writer::new(Vec::new()).text_mode();
25-
// w.write_all(b"hello")?;
26-
// w = w.binary_mode();
27-
// w.write(b"world")?;
28-
// assert_eq!(w.inner.as_bstr(), b"000ahello\n0009world".as_bstr());
29-
// Ok(())
30-
// }
31-
//
32-
// #[test]
33-
// fn huge_writes_are_split_into_lines() -> crate::Result {
34-
// let data = {
35-
// let mut v = Vec::new();
36-
// v.resize(MAX_DATA_LEN * 2, 0);
37-
// v
38-
// };
39-
// let mut w = Writer::new(Vec::new());
40-
// w.write(&data)?;
41-
// assert_eq!(w.inner.len(), MAX_LINE_LEN * 2);
42-
// Ok(())
43-
// }
44-
//
32+
33+
#[test]
34+
fn huge_writes_are_split_into_lines() -> crate::Result {
35+
let buf = future::block_on(async {
36+
let data = {
37+
let mut v = Vec::new();
38+
v.resize(MAX_DATA_LEN * 2, 0);
39+
v
40+
};
41+
let mut w = Writer::new(Vec::new());
42+
w.write(&data).await?;
43+
Ok::<_, std::io::Error>(w.into_inner())
44+
})?;
45+
assert_eq!(buf.len(), MAX_LINE_LEN * 2);
46+
Ok(())
47+
}
48+
4549
#[test]
4650
fn empty_writes_fail_with_error() {
4751
assert_eq!(

0 commit comments

Comments
 (0)