Mercurial > python-compiler.rs
changeset 94:e0368bea06a6
Refactor tests a little bit so it's easier to add more.
author | Bastien Orivel <eijebong@bananium.fr> |
---|---|
date | Tue, 14 Jun 2016 18:39:48 +0200 |
parents | c06d12a81637 |
children | 6569eea3db23 |
files | build.rs src/tests/mod.rs src/tests/test_parse_files.rs src/tests/utils.rs |
diffstat | 4 files changed, 23 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/build.rs +++ b/build.rs @@ -3,8 +3,7 @@ use std::path::Path; use std::io::prelude::*; use std::fs::{File, read_dir}; -fn main() { - let out_dir = env::var("OUT_DIR").unwrap(); +fn gen_parse_file_tests(out_dir: String) { let path = Path::new(&out_dir).join("generated_parse_tests.rs"); let mut f = File::create(&path).unwrap(); @@ -17,3 +16,8 @@ fn {}() {{ }}\n", test_name, path.to_str().unwrap()).as_bytes()).unwrap(); } } + +fn main() { + let out_dir = env::var("OUT_DIR").unwrap(); + gen_parse_file_tests(out_dir); +}
--- a/src/tests/test_parse_files.rs +++ b/src/tests/test_parse_files.rs @@ -2,22 +2,10 @@ use ast_convert; use ast_dump; use python_tb; use python_parse; -use std::io::Read; -use std::fs::File; +use tests::utils::read_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 code = read_file(filename); let module = match python_parse::parse_ast(code.clone()) { Ok(module) => module, Err(err) => {
new file mode 100644 --- /dev/null +++ b/src/tests/utils.rs @@ -0,0 +1,14 @@ +use std::fs::File; +use std::io::Read; + +pub fn read_file(filename: &str) -> String{ + let mut file = match File::open(filename) { + Ok(file) => file, + Err(err) => { + panic!(format!("Can't find {}: {}", filename, err)); + } + }; + let mut content = String::new(); + file.read_to_string(&mut content).unwrap(); + content +}