Add some tests for runtime
This commit is contained in:
parent
d7c3b8fa0b
commit
6dea4793ab
|
@ -209,18 +209,29 @@ mod tests {
|
||||||
fn test1() {
|
fn test1() {
|
||||||
let mut buffer = Buffer::new();
|
let mut buffer = Buffer::new();
|
||||||
assert!(buffer.data.is_null());
|
assert!(buffer.data.is_null());
|
||||||
assert_eq!(buffer.len, 0);
|
assert_eq!(buffer.len(), 0);
|
||||||
assert_eq!(buffer.capacity, 0);
|
assert_eq!(buffer.capacity(), 0);
|
||||||
|
|
||||||
buffer.push_str("apple");
|
buffer.push_str("apple");
|
||||||
assert!(!buffer.data.is_null());
|
assert!(!buffer.data.is_null());
|
||||||
assert_eq!(buffer.len, 5);
|
assert_eq!(buffer.len(), 5);
|
||||||
assert_eq!(buffer.capacity, 5);
|
assert_eq!(buffer.capacity(), 5);
|
||||||
|
|
||||||
buffer.push_str("pie");
|
buffer.push_str("pie");
|
||||||
assert!(!buffer.data.is_null());
|
assert!(!buffer.data.is_null());
|
||||||
assert_eq!(buffer.len, 8);
|
assert_eq!(buffer.len(), 8);
|
||||||
assert_eq!(buffer.capacity, 10);
|
assert_eq!(buffer.capacity(), 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test2() {
|
||||||
|
let mut buffer = Buffer::with_capacity(1);
|
||||||
|
assert!(buffer.is_empty());
|
||||||
|
assert_eq!(buffer.len(), 0);
|
||||||
|
assert!(buffer.capacity() >= 1);
|
||||||
|
|
||||||
|
buffer += "pie";
|
||||||
|
assert!(!buffer.is_empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::Path;
|
||||||
|
|
||||||
use super::buffer::Buffer;
|
use super::buffer::Buffer;
|
||||||
use super::{escape, RenderError};
|
use super::{escape, RenderError};
|
||||||
|
@ -53,36 +53,6 @@ impl Render for str {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Render for &'a str {
|
|
||||||
#[inline]
|
|
||||||
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
|
||||||
b.push_str(self);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
|
||||||
// escape string
|
|
||||||
escape::escape_to_buf(self, b);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Render for String {
|
|
||||||
#[inline]
|
|
||||||
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
|
||||||
b.push_str(self);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
|
||||||
// escape string
|
|
||||||
escape::escape_to_buf(self, b);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Render for char {
|
impl Render for char {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
||||||
|
@ -103,7 +73,7 @@ impl Render for char {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Render for &'a Path {
|
impl Render for Path {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
||||||
// TODO: speed up on Windows using OsStrExt
|
// TODO: speed up on Windows using OsStrExt
|
||||||
|
@ -118,22 +88,6 @@ impl<'a> Render for &'a Path {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Render for PathBuf {
|
|
||||||
#[inline]
|
|
||||||
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
|
||||||
b.push_str(&*self.to_string_lossy());
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
|
||||||
// escape string
|
|
||||||
escape::escape_to_buf(&*self.to_string_lossy(), b);
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// impl Render for [u8] {
|
// impl Render for [u8] {
|
||||||
// #[inline]
|
// #[inline]
|
||||||
// fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
// fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
||||||
|
@ -266,4 +220,18 @@ mod tests {
|
||||||
assert_eq!(b.as_str(), "c<& ");
|
assert_eq!(b.as_str(), "c<& ");
|
||||||
b.clear();
|
b.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn deref_coercion() {
|
||||||
|
use std::rc::Rc;
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
let mut b = Buffer::new();
|
||||||
|
(&String::from("a")).render(&mut b).unwrap();
|
||||||
|
(&&PathBuf::from("b")).render(&mut b).unwrap();
|
||||||
|
(&Rc::new(4u32)).render_escaped(&mut b).unwrap();
|
||||||
|
(&Rc::new(2.3f32)).render_escaped(&mut b).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(b.as_str(), "ab42.3");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue