diff options
| author | Laurenz <laurmaedje@gmail.com> | 2019-11-30 14:10:35 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2019-11-30 14:10:35 +0100 |
| commit | b13ed627fff73a599b34d760cd99aa2f08d58ea8 (patch) | |
| tree | f580390e1666af9f4f54c72c95ca438d4c999900 /tests | |
| parent | b4efae08834a3a950387f01aebaa9e832acd9423 (diff) | |
Better error reporting 🚨
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/layouting.rs | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/tests/layouting.rs b/tests/layouting.rs index 77ec54ae..72d160e4 100644 --- a/tests/layouting.rs +++ b/tests/layouting.rs @@ -68,32 +68,39 @@ fn test(name: &str, src: &str) { let provider = FileSystemFontProvider::from_listing("fonts/fonts.toml").unwrap(); typesetter.add_font_provider(provider.clone()); - #[cfg(not(debug_assertions))] - let layouts = { + #[cfg(not(debug_assertions))] { use std::time::Instant; // Warmup. let warmup_start = Instant::now(); - typesetter.typeset(&src).unwrap(); + let is_ok = typesetter.typeset(&src).is_ok(); let warmup_end = Instant::now(); - let start = Instant::now(); - let tree = typesetter.parse(&src).unwrap(); - let mid = Instant::now(); - let layouts = typesetter.layout(&tree).unwrap(); - let end = Instant::now(); - - println!(" - cold start: {:?}", warmup_end - warmup_start); - println!(" - warmed up: {:?}", end - start); - println!(" - parsing: {:?}", mid - start); - println!(" - layouting: {:?}", end - mid); - println!(); + if is_ok { + let start = Instant::now(); + let tree = typesetter.parse(&src).unwrap(); + let mid = Instant::now(); + typesetter.layout(&tree).unwrap(); + let end = Instant::now(); + + println!(" - cold start: {:?}", warmup_end - warmup_start); + println!(" - warmed up: {:?}", end - start); + println!(" - parsing: {:?}", mid - start); + println!(" - layouting: {:?}", end - mid); + println!(); + } + }; - layouts + let layouts = match typesetter.typeset(&src) { + Ok(layouts) => layouts, + Err(err) => { + println!(" - compilation failed: {}", err); + #[cfg(not(debug_assertions))] + println!(); + return; + }, }; - #[cfg(debug_assertions)] - let layouts = typesetter.typeset(&src).unwrap(); // Write the serialed layout file. let path = format!("{}/serialized/{}.tld", CACHE_DIR, name); |
