Mercurial > python-compiler.rs
annotate build.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 | 6569eea3db23 |
children |
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(); |
95
6569eea3db23
Ignore tests which don’t have the .py extension.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
94
diff
changeset
|
12 if path.extension().unwrap() != "py" { |
6569eea3db23
Ignore tests which don’t have the .py extension.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
94
diff
changeset
|
13 continue; |
6569eea3db23
Ignore tests which don’t have the .py extension.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
94
diff
changeset
|
14 } |
24
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
15 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
|
16 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
|
17 fn {}() {{ |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
18 test_parse_file(\"{}\"); |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
19 }}\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
|
20 } |
199ba034e4af
Generate tests dynamically based on tests/test_parse_files/ content.
Bastien Orivel <eijebong@bananium.fr>
parents:
diff
changeset
|
21 } |
94
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
22 |
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
23 fn main() { |
e0368bea06a6
Refactor tests a little bit so it's easier to add more.
Bastien Orivel <eijebong@bananium.fr>
parents:
24
diff
changeset
|
24 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
|
25 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
|
26 } |