diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-10-25 08:45:44 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-10-25 08:45:44 -0400 |
commit | a5e7c90d0af6a0b6080f17df2910f69ef114b210 (patch) | |
tree | 08bd9578847e77c3aa34eec2e6ad45238759719a /src/parser.rs | |
parent | 37e6d9c37b2d8e49103ef61f0127bc8b15a51530 (diff) | |
download | ttyrec-a5e7c90d0af6a0b6080f17df2910f69ef114b210.tar.gz ttyrec-a5e7c90d0af6a0b6080f17df2910f69ef114b210.zip |
add some tests
Diffstat (limited to 'src/parser.rs')
-rw-r--r-- | src/parser.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/parser.rs b/src/parser.rs index 2118095..d3c3861 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -88,3 +88,35 @@ impl Default for Parser { } } } + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_basic() { + let bytes = vec![ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 64, 226, 1, 0, + 10, 0, 0, 0, 27, 91, 50, 74, 102, 111, 111, 98, 97, 114, + ]; + let mut parser = Parser::new(); + for (i, c) in bytes.into_iter().enumerate() { + parser.add_bytes(&[c]); + let expected = match i { + 11 => { + let time = std::time::Duration::new(0, 0); + let data = b"".to_vec(); + Some(crate::frame::Frame { time, data }) + } + 33 => { + let time = std::time::Duration::new(38, 123_456_000); + let data = b"\x1b[2Jfoobar".to_vec(); + Some(crate::frame::Frame { time, data }) + } + _ => None, + }; + let got = parser.next_frame(); + assert_eq!(got, expected); + } + } +} |