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")); |