From f890437c178ddfee2b98578711a2a68970acd8a1 Mon Sep 17 00:00:00 2001 From: Tangent 128 Date: Wed, 11 Apr 2018 22:45:53 -0400 Subject: [PATCH] convert bin/stub into a sanity test --- src/bin/stub.rs | 28 ---------------------------- src/data/encode_webm_test.webm | Bin 0 -> 73 bytes src/lib.rs | 1 + src/webm.rs | 31 ++++++++++++++++++++++++++++++- 4 files changed, 31 insertions(+), 29 deletions(-) delete mode 100644 src/bin/stub.rs create mode 100644 src/data/encode_webm_test.webm diff --git a/src/bin/stub.rs b/src/bin/stub.rs deleted file mode 100644 index 0ecd41d..0000000 --- a/src/bin/stub.rs +++ /dev/null @@ -1,28 +0,0 @@ -extern crate webmetro; - -use std::io::{Cursor, stdout, Write}; -use webmetro::webm::*; - -pub fn main() { - let mut cursor = Cursor::new(Vec::new()); - - encode_webm_element(WebmElement::EbmlHead, &mut cursor).unwrap(); - encode_webm_element(WebmElement::Segment, &mut cursor).unwrap(); - - encode_webm_element(WebmElement::Tracks(&[]), &mut cursor).unwrap(); - - encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); - encode_webm_element(WebmElement::Timecode(0), &mut cursor).unwrap(); - - encode_webm_element(WebmElement::SimpleBlock(SimpleBlock { - track: 3, - flags: 0x0, - timecode: 123, - data: "Hello, World".as_bytes() - }), &mut cursor).unwrap(); - - encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); - encode_webm_element(WebmElement::Timecode(1000), &mut cursor).unwrap(); - - stdout().write_all(&cursor.get_ref()).unwrap(); -} diff --git a/src/data/encode_webm_test.webm b/src/data/encode_webm_test.webm new file mode 100644 index 0000000000000000000000000000000000000000..badfef2a3cd95bc6f299a7ac94e535cf309b1d6c GIT binary patch literal 73 zcmb1gy}ww1fq~trsiizMDOV!6A^pEt$hzzXdFO4V|DSg-K*8b(%?#BH9;rDw`8o>W N`9(P?C<>Tg005?S7@7b8 literal 0 HcmV?d00001 diff --git a/src/lib.rs b/src/lib.rs index b7cde9f..3e80f2b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,6 +21,7 @@ mod tests { use futures::future::{ok, Future}; pub const TEST_FILE: &'static [u8] = include_bytes!("data/test1.webm"); + pub const ENCODE_WEBM_TEST_FILE: &'static [u8] = include_bytes!("data/encode_webm_test.webm"); #[test] fn hello_futures() { diff --git a/src/webm.rs b/src/webm.rs index 5386b4a..6a48b60 100644 --- a/src/webm.rs +++ b/src/webm.rs @@ -131,7 +131,10 @@ pub fn encode_webm_element(element: WebmElement, output: &mut T #[cfg(test)] mod tests { - use tests::TEST_FILE; + use tests::{ + TEST_FILE, + ENCODE_WEBM_TEST_FILE + }; use webm::*; #[test] @@ -188,4 +191,30 @@ mod tests { assert_eq!(iter.next(), Some(WebmElement::Cues)); assert_eq!(iter.next(), None); } + + #[test] + fn encode_webm_test() { + let mut cursor = Cursor::new(Vec::new()); + + encode_webm_element(WebmElement::EbmlHead, &mut cursor).unwrap(); + encode_webm_element(WebmElement::Segment, &mut cursor).unwrap(); + + encode_webm_element(WebmElement::Tracks(&[]), &mut cursor).unwrap(); + + encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); + encode_webm_element(WebmElement::Timecode(0), &mut cursor).unwrap(); + + encode_webm_element(WebmElement::SimpleBlock(SimpleBlock { + track: 3, + flags: 0x0, + timecode: 123, + data: "Hello, World".as_bytes() + }), &mut cursor).unwrap(); + + encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); + encode_webm_element(WebmElement::Timecode(1000), &mut cursor).unwrap(); + + assert_eq!(cursor.get_ref(), &ENCODE_WEBM_TEST_FILE); + } + }