summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2019-11-30 14:10:35 +0100
committerLaurenz <laurmaedje@gmail.com>2019-11-30 14:10:35 +0100
commitb13ed627fff73a599b34d760cd99aa2f08d58ea8 (patch)
treef580390e1666af9f4f54c72c95ca438d4c999900 /tests
parentb4efae08834a3a950387f01aebaa9e832acd9423 (diff)
Better error reporting 🚨
Diffstat (limited to 'tests')
-rw-r--r--tests/layouting.rs41
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);