summaryrefslogtreecommitdiff
path: root/tests/src/layouter.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-01-19 21:50:20 +0100
committerLaurenz <laurmaedje@gmail.com>2020-01-19 21:53:24 +0100
commit95e6b078fecddeaa3d6f2c920b617201b74bf01e (patch)
tree1c03b0b16d614a5a2350dccf71a1eb1e34f9a812 /tests/src/layouter.rs
parent277f2d2176f5e98305870f90b16af3feae1bb3d1 (diff)
Move to non-fatal errors 🪂 [WIP]
- Dynamic models instead of SyntaxTrees - No more ParseResult/LayoutResult - Errors and Decorations which are propagated to parent contexts - Models are finally clonable
Diffstat (limited to 'tests/src/layouter.rs')
-rw-r--r--tests/src/layouter.rs49
1 files changed, 19 insertions, 30 deletions
diff --git a/tests/src/layouter.rs b/tests/src/layouter.rs
index fa0c631a..eeca1a1b 100644
--- a/tests/src/layouter.rs
+++ b/tests/src/layouter.rs
@@ -76,10 +76,7 @@ fn test(name: &str, src: &str) -> DynResult<()> {
let font_paths = provider.paths();
typesetter.add_font_provider(provider);
- let layouts = match compile(&typesetter, src) {
- Some(layouts) => layouts,
- None => return Ok(()),
- };
+ let layouts = compile(&typesetter, src);
// Compute the font's paths.
let mut fonts = HashMap::new();
@@ -122,40 +119,32 @@ fn test(name: &str, src: &str) -> DynResult<()> {
}
/// Compile the source code with the typesetter.
-fn compile(typesetter: &Typesetter, src: &str) -> Option<MultiLayout> {
+fn compile(typesetter: &Typesetter, src: &str) -> MultiLayout {
#[cfg(not(debug_assertions))] {
use std::time::Instant;
// Warmup.
let warmup_start = Instant::now();
- let is_ok = block_on(typesetter.typeset(&src)).is_ok();
+ block_on(typesetter.typeset(&src));
let warmup_end = Instant::now();
- // Only continue if the typesetting was successful.
- if is_ok {
- let start = Instant::now();
- let tree = typesetter.parse(&src).unwrap();
- let mid = Instant::now();
- block_on(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!();
- }
- };
-
- match block_on(typesetter.typeset(&src)) {
- Ok(layouts) => Some(layouts),
- Err(err) => {
- println!(" - compilation failed: {}", err);
- #[cfg(not(debug_assertions))]
- println!();
- None
- }
+ let start = Instant::now();
+ let tree = typesetter.parse(&src).output;
+ let mid = Instant::now();
+ let layouts = block_on(typesetter.layout(&tree)).output;
+ 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
}
+
+ #[cfg(debug_assertions)]
+ block_on(typesetter.typeset(&src))
}
/// Command line options.