diff options
Diffstat (limited to 'tests/layouting.rs')
| -rw-r--r-- | tests/layouting.rs | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/tests/layouting.rs b/tests/layouting.rs index b748748f..2ac92b8e 100644 --- a/tests/layouting.rs +++ b/tests/layouting.rs @@ -3,15 +3,25 @@ use std::io::{Write, Read, BufWriter}; use std::process::Command; use typst::Typesetter; +use typst::layout::LayoutAction; use typst::toddle::query::FileSystemFontProvider; use typst::export::pdf::PdfExporter; -use typst::doc::LayoutAction; const CACHE_DIR: &str = "test-cache"; -#[test] -fn layouting() { +fn main() { + let mut filter = Vec::new(); + for arg in std::env::args().skip(1) { + if arg.as_str() != "--nocapture" { + filter.push(arg); + } + } + + if !filter.is_empty() { + println!("Using filter: {:?}", filter); + } + fs::create_dir_all(format!("{}/serialized", CACHE_DIR)).unwrap(); fs::create_dir_all(format!("{}/rendered", CACHE_DIR)).unwrap(); fs::create_dir_all(format!("{}/pdf", CACHE_DIR)).unwrap(); @@ -19,20 +29,24 @@ fn layouting() { for entry in fs::read_dir("tests/layouts/").unwrap() { let path = entry.unwrap().path(); - let mut file = File::open(&path).unwrap(); - let mut src = String::new(); - file.read_to_string(&mut src).unwrap(); - let name = path .file_stem().unwrap() .to_str().unwrap(); - test(name, &src); + if filter.is_empty() || filter.iter().any(|pattern| name.contains(pattern)) { + let mut file = File::open(&path).unwrap(); + let mut src = String::new(); + file.read_to_string(&mut src).unwrap(); + + test(name, &src); + } } } /// Create a _PDF_ with a name from the source code. fn test(name: &str, src: &str) { + println!("Testing: {}", name); + let mut typesetter = Typesetter::new(); let provider = FileSystemFontProvider::from_listing("fonts/fonts.toml").unwrap(); typesetter.add_font_provider(provider.clone()); |
