Mercurial > python-compiler.rs
annotate build.rs @ 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 | 199ba034e4af |
children | 6569eea3db23 |
rev | line source |
---|---|
24
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
1 use std::env; |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
2 use std::path::Path; |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
3 use std::io::prelude::*; |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
4 use std::fs::{File, read_dir}; |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
5 |
94
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
6 fn gen_parse_file_tests(out_dir: String) { |
24
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
7 let path = Path::new(&out_dir).join("generated_parse_tests.rs"); |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
8 let mut f = File::create(&path).unwrap(); |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
9 |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
10 for file in read_dir("tests/test_parse_files").unwrap() { |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
11 let path = file.unwrap().path(); |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
12 let test_name = path.file_stem().unwrap().to_str().unwrap(); |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
13 let _ = f.write_all(format!("#[test] |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
14 fn {}() {{ |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
15 test_parse_file(\"{}\"); |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
16 }}\n", test_name, path.to_str().unwrap()).as_bytes()).unwrap(); |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
17 } |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
18 } |
94
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
19 |
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
20 fn main() { |
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
21 let out_dir = env::var("OUT_DIR").unwrap(); |
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
22 gen_parse_file_tests(out_dir); |
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
23 } |