annotate src/tests/test_parse_files.rs @ 96:20c1c9d7803d default tip

Fix dump failure in strings containing backquotes and double quotes.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Tue, 28 Jun 2016 01:40:55 +0100
parents e0368bea06a6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
1 use ast_convert;
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
2 use ast_dump;
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
3 use python_tb;
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
4 use python_parse;
94
e0368bea06a6 Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents: 93
diff changeset
5 use tests::utils::read_file;
23
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
6
25
86604a156ed0 Rename tests_convert_dump to test_parse_files.
Bastien Orivel <eijebong@bananium.fr>
parents: 24
diff changeset
7 fn test_parse_file(filename: &str) {
94
e0368bea06a6 Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents: 93
diff changeset
8 let code = read_file(filename);
23
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
9 let module = match python_parse::parse_ast(code.clone()) {
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
10 Ok(module) => module,
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
11 Err(err) => {
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
12 python_tb::traceback(err);
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
13 panic!(format!("Error while parsing file “{}”:", filename));
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
14 }
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
15 };
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
16
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
17 let module_ast = ast_convert::convert_ast("__main__".to_string(), &module);
93
c06d12a81637 Better test failure. Use assert_diff! instead of assert_eq! so we can actually see what the differences are.
Bastien Orivel <eijebong@bananium.fr>
parents: 62
diff changeset
18 let dumped_ast = ast_dump::dump_ast(&module_ast) + "\n";
c06d12a81637 Better test failure. Use assert_diff! instead of assert_eq! so we can actually see what the differences are.
Bastien Orivel <eijebong@bananium.fr>
parents: 62
diff changeset
19 assert_diff!(code.as_str(), dumped_ast.as_str(), "\n", 0);
23
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
20 }
5a7c3393382b Add a simple test for ast.Assign.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff changeset
21
24
199ba034e4af Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents: 23
diff changeset
22 include!(concat!(env!("OUT_DIR"), "/generated_parse_tests.rs"));