From 8a80503188804d576636265e71f72e9f55a7961a Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 17 Aug 2020 16:18:55 +0200 Subject: [PATCH] =?UTF-8?q?Tidier=20error=20output=20in=20main=20and=20tes?= =?UTF-8?q?ts=20=F0=9F=A7=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/main.rs | 17 ++++++++++++++++- tests/test_typeset.rs | 17 ++++++++++++----- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/main/main.rs b/main/main.rs index 0d67241c..65b70d38 100644 --- a/main/main.rs +++ b/main/main.rs @@ -44,7 +44,22 @@ fn main() { let loader = Rc::new(RefCell::new(loader)); let typesetter = Typesetter::new(loader.clone()); - let layouts = block_on(typesetter.typeset(&src)).output; + let pass = block_on(typesetter.typeset(&src)); + let layouts = pass.output; + + let mut feedback = pass.feedback; + feedback.diagnostics.sort(); + for diagnostic in feedback.diagnostics { + let span = diagnostic.span; + println!( + "{}: {}:{}:{} - {}:{}: {}", + format!("{:?}", diagnostic.v.level).to_lowercase(), + src_path.display(), + span.start.line + 1, span.start.column + 1, + span.end.line + 1, span.end.column + 1, + diagnostic.v.message, + ); + } let file = File::create(&dest_path) .expect("failed to create output file"); diff --git a/tests/test_typeset.rs b/tests/test_typeset.rs index 4d853393..5bb02dc7 100644 --- a/tests/test_typeset.rs +++ b/tests/test_typeset.rs @@ -3,6 +3,7 @@ use std::env; use std::ffi::OsStr; use std::fs::{self, File}; use std::io::BufWriter; +use std::path::Path; use std::rc::Rc; use fontdock::fs::{FsIndex, FsProvider}; @@ -41,7 +42,7 @@ fn main() { let name = path.file_stem().unwrap().to_string_lossy().to_string(); if filter.matches(&name) { let src = fs::read_to_string(&path).unwrap(); - filtered.push((name, src)); + filtered.push((name, path, src)); } } @@ -72,14 +73,15 @@ fn main() { margins: Value4::with_all(None), }); - for (name, src) in filtered { - test(&name, &src, &mut typesetter, &loader) + for (name, path, src) in filtered { + test(&name, &src, &path, &mut typesetter, &loader) } } fn test( name: &str, src: &str, + path: &Path, typesetter: &mut Typesetter, loader: &SharedFontLoader, ) { @@ -91,9 +93,14 @@ fn test( feedback.diagnostics.sort(); for diagnostic in feedback.diagnostics { + let span = diagnostic.span; println!( - " {:?} {:?}: {}", - diagnostic.v.level, diagnostic.span, diagnostic.v.message, + " {:?}: {}:{}:{} - {}:{}: {}", + diagnostic.v.level, + path.display(), + span.start.line + 1, span.start.column + 1, + span.end.line + 1, span.end.column + 1, + diagnostic.v.message, ); }