aboutsummaryrefslogtreecommitdiff
path: root/tests/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/parser.rs')
-rw-r--r--tests/parser.rs15
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
24fn parser_test_cases() -> Vec<PathBuf> { 24fn 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
37fn 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
38fn parser_test_case(path: &Path) { 44fn 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 {