diff options
Diffstat (limited to 'tests/parser.rs')
-rw-r--r-- | tests/parser.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/tests/parser.rs b/tests/parser.rs index 7fde365c9..206da2a64 100644 --- a/tests/parser.rs +++ b/tests/parser.rs | |||
@@ -21,9 +21,8 @@ fn parser_test_dir() -> PathBuf { | |||
21 | PathBuf::from(dir).join("tests/data/parser") | 21 | PathBuf::from(dir).join("tests/data/parser") |
22 | } | 22 | } |
23 | 23 | ||
24 | fn parser_test_cases() -> Vec<PathBuf> { | 24 | fn test_from_dir(dir: &Path) -> Vec<PathBuf> { |
25 | let mut acc = Vec::new(); | 25 | let mut acc = Vec::new(); |
26 | let dir = parser_test_dir(); | ||
27 | for file in read_dir(&dir).unwrap() { | 26 | for file in read_dir(&dir).unwrap() { |
28 | let file = file.unwrap(); | 27 | let file = file.unwrap(); |
29 | let path = file.path(); | 28 | let path = file.path(); |
@@ -35,6 +34,13 @@ fn parser_test_cases() -> Vec<PathBuf> { | |||
35 | acc | 34 | acc |
36 | } | 35 | } |
37 | 36 | ||
37 | fn parser_test_cases() -> Vec<PathBuf> { | ||
38 | let mut acc = Vec::new(); | ||
39 | acc.extend(test_from_dir(&parser_test_dir().join("ok"))); | ||
40 | acc.extend(test_from_dir(&parser_test_dir().join("err"))); | ||
41 | acc | ||
42 | } | ||
43 | |||
38 | fn parser_test_case(path: &Path) { | 44 | fn parser_test_case(path: &Path) { |
39 | let actual = { | 45 | let actual = { |
40 | let text = file::get_text(path).unwrap(); | 46 | let text = file::get_text(path).unwrap(); |
@@ -42,7 +48,10 @@ fn parser_test_case(path: &Path) { | |||
42 | let file = parse(text, &tokens); | 48 | let file = parse(text, &tokens); |
43 | dump_tree(&file) | 49 | dump_tree(&file) |
44 | }; | 50 | }; |
45 | let expected = file::get_text(&path.with_extension("txt")).unwrap(); | 51 | let expected = path.with_extension("txt"); |
52 | let expected = file::get_text(&expected).expect( | ||
53 | &format!("Can't read {}", expected.display()) | ||
54 | ); | ||
46 | let expected = expected.as_str(); | 55 | let expected = expected.as_str(); |
47 | let actual = actual.as_str(); | 56 | let actual = actual.as_str(); |
48 | if expected == actual { | 57 | if expected == actual { |