diff options
author | Liz Baillie <liz@lizbaillie.com> | 2016-10-05 09:10:12 -0700 |
---|---|---|
committer | Liz Baillie <liz@lizbaillie.com> | 2016-10-21 07:57:34 -0700 |
commit | b016827f471041320996f3273b4e3058501d7edf (patch) | |
tree | 7d2b6e0f7e6c055ee31c16049d39dfee129ec0bd /utf8parse/src/lib.rs | |
parent | 5509849473c7549c95b6a3ef87af8075c50d5da7 (diff) | |
download | r-alacritty-vte-b016827f471041320996f3273b4e3058501d7edf.tar.gz r-alacritty-vte-b016827f471041320996f3273b4e3058501d7edf.tar.bz2 r-alacritty-vte-b016827f471041320996f3273b4e3058501d7edf.zip |
adds UTF8parse test and associated UTF-8 test file
Diffstat (limited to 'utf8parse/src/lib.rs')
-rw-r--r-- | utf8parse/src/lib.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/utf8parse/src/lib.rs b/utf8parse/src/lib.rs index 9585642..e75f197 100644 --- a/utf8parse/src/lib.rs +++ b/utf8parse/src/lib.rs @@ -91,3 +91,42 @@ impl Parser { } } } + +#[cfg(test)] +mod tests { + use std::io::Read; + use std::fs::File; + use Receiver; + use Parser; + + impl Receiver for String { + fn codepoint(&mut self, c: char) { + self.push(c); + } + + fn invalid_sequence(&mut self) { + } + } + + #[test] + fn utf8parse_test() { + let mut buffer = String::new(); + let mut file = File::open("src/UTF-8-demo.txt").unwrap(); + let mut parser = Parser::new(); + + // read the file to a buffer + file.read_to_string(&mut buffer).expect("Reading file to string"); + + // standard library implementation + let expected = String::from_utf8(buffer.as_bytes().to_vec()).unwrap(); + + // utf8parse implementation + let mut actual = String::new(); + + for byte in buffer.as_bytes().to_vec() { + parser.advance(&mut actual, byte) + } + + assert_eq!(actual, expected); + } +} |