just/src/testing.rs

30 lines
826 B
Rust
Raw Normal View History

2017-11-16 23:30:08 -08:00
use common::*;
use compile;
2017-11-17 17:28:06 -08:00
use tokenizer::tokenize;
2017-11-16 23:30:08 -08:00
pub fn parse_success(text: &str) -> Justfile {
match compile(text) {
Ok(justfile) => justfile,
Err(error) => panic!("Expected successful parse but got error:\n{}", error),
}
}
pub fn parse_error(text: &str, expected: CompilationError) {
2017-11-17 17:28:06 -08:00
let tokens = tokenize(text).unwrap();
let parser = Parser::new(text, tokens);
if let Err(error) = parser.justfile() {
2017-11-16 23:30:08 -08:00
assert_eq!(error.text, expected.text);
assert_eq!(error.index, expected.index);
assert_eq!(error.line, expected.line);
assert_eq!(error.column, expected.column);
assert_eq!(error.kind, expected.kind);
assert_eq!(error.width, expected.width);
assert_eq!(error, expected);
} else {
panic!("Expected {:?} but parse succeeded", expected.kind);
}
}