aboutsummaryrefslogtreecommitdiff
path: root/utf8parse/src/lib.rs
diff options
context:
space:
mode:
authorLiz Baillie <liz@lizbaillie.com>2016-10-05 09:10:12 -0700
committerLiz Baillie <liz@lizbaillie.com>2016-10-21 07:57:34 -0700
commitb016827f471041320996f3273b4e3058501d7edf (patch)
tree7d2b6e0f7e6c055ee31c16049d39dfee129ec0bd /utf8parse/src/lib.rs
parent5509849473c7549c95b6a3ef87af8075c50d5da7 (diff)
downloadr-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.rs39
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);
+ }
+}