Mercurial > python-compiler.rs
view src/tests/test_parse_files.rs @ 93:c06d12a81637
Better test failure. Use assert_diff! instead of assert_eq! so we can actually see what the differences are.
author | Bastien Orivel <eijebong@bananium.fr> |
---|---|
date | Tue, 14 Jun 2016 02:53:29 +0200 |
parents | d255a932553f |
children | e0368bea06a6 |
line wrap: on
line source
use ast_convert; use ast_dump; use python_tb; use python_parse; use std::io::Read; use std::fs::File; fn test_parse_file(filename: &str) { let code = { let mut file = match File::open(filename) { Ok(file) => file, Err(err) => { panic!(format!("Can't find {}: {}", filename, err)); } }; let mut code = String::new(); file.read_to_string(&mut code).unwrap(); code }; let module = match python_parse::parse_ast(code.clone()) { Ok(module) => module, Err(err) => { python_tb::traceback(err); panic!(format!("Error while parsing file “{}”:", filename)); } }; let module_ast = ast_convert::convert_ast("__main__".to_string(), &module); let dumped_ast = ast_dump::dump_ast(&module_ast) + "\n"; assert_diff!(code.as_str(), dumped_ast.as_str(), "\n", 0); } include!(concat!(env!("OUT_DIR"), "/generated_parse_tests.rs"));