aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-10-25 08:45:44 -0400
committerJesse Luehrs <doy@tozt.net>2019-10-25 08:45:44 -0400
commita5e7c90d0af6a0b6080f17df2910f69ef114b210 (patch)
tree08bd9578847e77c3aa34eec2e6ad45238759719a /src/parser.rs
parent37e6d9c37b2d8e49103ef61f0127bc8b15a51530 (diff)
downloadttyrec-a5e7c90d0af6a0b6080f17df2910f69ef114b210.tar.gz
ttyrec-a5e7c90d0af6a0b6080f17df2910f69ef114b210.zip
add some tests
Diffstat (limited to 'src/parser.rs')
-rw-r--r--src/parser.rs32
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);
+ }
+ }
+}