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/mod.rs
+++ b/src/tests/mod.rs
@@ -1,1 +1,2 @@
+mod utils;
 mod test_parse_files;
--- 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
+}