Mercurial > python-compiler.rs
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 |
| 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")); |
