Add some tests for runtime
This commit is contained in:
parent
d7c3b8fa0b
commit
6dea4793ab
|
@ -209,18 +209,29 @@ mod tests {
|
|||
fn test1() {
|
||||
let mut buffer = Buffer::new();
|
||||
assert!(buffer.data.is_null());
|
||||
assert_eq!(buffer.len, 0);
|
||||
assert_eq!(buffer.capacity, 0);
|
||||
assert_eq!(buffer.len(), 0);
|
||||
assert_eq!(buffer.capacity(), 0);
|
||||
|
||||
buffer.push_str("apple");
|
||||
assert!(!buffer.data.is_null());
|
||||
assert_eq!(buffer.len, 5);
|
||||
assert_eq!(buffer.capacity, 5);
|
||||
assert_eq!(buffer.len(), 5);
|
||||
assert_eq!(buffer.capacity(), 5);
|
||||
|
||||
buffer.push_str("pie");
|
||||
assert!(!buffer.data.is_null());
|
||||
assert_eq!(buffer.len, 8);
|
||||
assert_eq!(buffer.capacity, 10);
|
||||
assert_eq!(buffer.len(), 8);
|
||||
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]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use std::path::{Path, PathBuf};
|
||||
use std::path::Path;
|
||||
|
||||
use super::buffer::Buffer;
|
||||
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 {
|
||||
#[inline]
|
||||
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]
|
||||
fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
||||
// 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] {
|
||||
// #[inline]
|
||||
// fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
||||
|
@ -266,4 +220,18 @@ mod tests {
|
|||
assert_eq!(b.as_str(), "c<& ");
|
||||
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