From b13ed627fff73a599b34d760cd99aa2f08d58ea8 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 30 Nov 2019 14:10:35 +0100 Subject: =?UTF-8?q?Better=20error=20reporting=20=F0=9F=9A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/layouting.rs | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) (limited to 'tests') 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); -- cgit v1.2.3