Tidier error output in main and tests 🧹

This commit is contained in:
Laurenz 2020-08-17 16:18:55 +02:00
parent 30f16bbf64
commit 8a80503188
2 changed files with 28 additions and 6 deletions

View File

@ -44,7 +44,22 @@ fn main() {
let loader = Rc::new(RefCell::new(loader)); let loader = Rc::new(RefCell::new(loader));
let typesetter = Typesetter::new(loader.clone()); 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) let file = File::create(&dest_path)
.expect("failed to create output file"); .expect("failed to create output file");

View File

@ -3,6 +3,7 @@ use std::env;
use std::ffi::OsStr; use std::ffi::OsStr;
use std::fs::{self, File}; use std::fs::{self, File};
use std::io::BufWriter; use std::io::BufWriter;
use std::path::Path;
use std::rc::Rc; use std::rc::Rc;
use fontdock::fs::{FsIndex, FsProvider}; use fontdock::fs::{FsIndex, FsProvider};
@ -41,7 +42,7 @@ fn main() {
let name = path.file_stem().unwrap().to_string_lossy().to_string(); let name = path.file_stem().unwrap().to_string_lossy().to_string();
if filter.matches(&name) { if filter.matches(&name) {
let src = fs::read_to_string(&path).unwrap(); 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), margins: Value4::with_all(None),
}); });
for (name, src) in filtered { for (name, path, src) in filtered {
test(&name, &src, &mut typesetter, &loader) test(&name, &src, &path, &mut typesetter, &loader)
} }
} }
fn test( fn test(
name: &str, name: &str,
src: &str, src: &str,
path: &Path,
typesetter: &mut Typesetter, typesetter: &mut Typesetter,
loader: &SharedFontLoader, loader: &SharedFontLoader,
) { ) {
@ -91,9 +93,14 @@ fn test(
feedback.diagnostics.sort(); feedback.diagnostics.sort();
for diagnostic in feedback.diagnostics { for diagnostic in feedback.diagnostics {
let span = diagnostic.span;
println!( 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,
); );
} }