2019-04-11 15:23:14 -07:00
|
|
|
use crate::common::*;
|
2017-11-16 23:30:08 -08:00
|
|
|
|
2019-04-19 02:17:43 -07:00
|
|
|
pub fn parse(text: &str) -> Justfile {
|
2017-11-18 03:36:02 -08:00
|
|
|
match Parser::parse(text) {
|
2017-11-16 23:30:08 -08:00
|
|
|
Ok(justfile) => justfile,
|
2019-04-19 02:17:43 -07:00
|
|
|
Err(error) => panic!("Expected successful parse but got error:\n {}", error),
|
2017-11-16 23:30:08 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-07-06 20:55:46 -07:00
|
|
|
pub fn tempdir() -> tempfile::TempDir {
|
|
|
|
tempfile::Builder::new()
|
|
|
|
.prefix("just-test-tempdir")
|
|
|
|
.tempdir()
|
|
|
|
.expect("failed to create temporary directory")
|
|
|
|
}
|
|
|
|
|
2019-04-19 02:17:43 -07:00
|
|
|
macro_rules! error_test {
|
2017-11-18 01:44:59 -08:00
|
|
|
(
|
2019-04-15 22:40:02 -07:00
|
|
|
name: $name:ident,
|
|
|
|
input: $input:expr,
|
|
|
|
offset: $offset:expr,
|
|
|
|
line: $line:expr,
|
|
|
|
column: $column:expr,
|
|
|
|
width: $width:expr,
|
|
|
|
kind: $kind:expr,
|
2017-11-18 01:44:59 -08:00
|
|
|
) => {
|
|
|
|
#[test]
|
|
|
|
fn $name() {
|
2019-04-19 02:17:43 -07:00
|
|
|
let text: &str = $input;
|
|
|
|
let offset: usize = $offset;
|
|
|
|
let column: usize = $column;
|
|
|
|
let width: usize = $width;
|
|
|
|
let line: usize = $line;
|
|
|
|
let kind: CompilationErrorKind = $kind;
|
|
|
|
|
|
|
|
let expected = CompilationError {
|
|
|
|
text,
|
|
|
|
offset,
|
|
|
|
line,
|
|
|
|
column,
|
|
|
|
width,
|
|
|
|
kind,
|
2017-11-18 01:44:59 -08:00
|
|
|
};
|
|
|
|
|
2019-04-19 02:17:43 -07:00
|
|
|
match Parser::parse(text) {
|
|
|
|
Ok(_) => panic!("Compilation succeeded but expected: {}\n{}", expected, text),
|
|
|
|
Err(actual) => {
|
|
|
|
use pretty_assertions::assert_eq;
|
|
|
|
assert_eq!(actual, expected);
|
|
|
|
}
|
2017-11-18 01:44:59 -08:00
|
|
|
}
|
|
|
|
}
|
2018-12-08 14:29:41 -08:00
|
|
|
};
|
2017-11-16 23:30:08 -08:00
|
|
|
}
|