summaryrefslogtreecommitdiff
path: root/tests/layouting.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/layouting.rs')
-rw-r--r--tests/layouting.rs30
1 files changed, 22 insertions, 8 deletions
diff --git a/tests/layouting.rs b/tests/layouting.rs
index b748748f..2ac92b8e 100644
--- a/tests/layouting.rs
+++ b/tests/layouting.rs
@@ -3,15 +3,25 @@ use std::io::{Write, Read, BufWriter};
use std::process::Command;
use typst::Typesetter;
+use typst::layout::LayoutAction;
use typst::toddle::query::FileSystemFontProvider;
use typst::export::pdf::PdfExporter;
-use typst::doc::LayoutAction;
const CACHE_DIR: &str = "test-cache";
-#[test]
-fn layouting() {
+fn main() {
+ let mut filter = Vec::new();
+ for arg in std::env::args().skip(1) {
+ if arg.as_str() != "--nocapture" {
+ filter.push(arg);
+ }
+ }
+
+ if !filter.is_empty() {
+ println!("Using filter: {:?}", filter);
+ }
+
fs::create_dir_all(format!("{}/serialized", CACHE_DIR)).unwrap();
fs::create_dir_all(format!("{}/rendered", CACHE_DIR)).unwrap();
fs::create_dir_all(format!("{}/pdf", CACHE_DIR)).unwrap();
@@ -19,20 +29,24 @@ fn layouting() {
for entry in fs::read_dir("tests/layouts/").unwrap() {
let path = entry.unwrap().path();
- let mut file = File::open(&path).unwrap();
- let mut src = String::new();
- file.read_to_string(&mut src).unwrap();
-
let name = path
.file_stem().unwrap()
.to_str().unwrap();
- test(name, &src);
+ if filter.is_empty() || filter.iter().any(|pattern| name.contains(pattern)) {
+ let mut file = File::open(&path).unwrap();
+ let mut src = String::new();
+ file.read_to_string(&mut src).unwrap();
+
+ test(name, &src);
+ }
}
}
/// Create a _PDF_ with a name from the source code.
fn test(name: &str, src: &str) {
+ println!("Testing: {}", name);
+
let mut typesetter = Typesetter::new();
let provider = FileSystemFontProvider::from_listing("fonts/fonts.toml").unwrap();
typesetter.add_font_provider(provider.clone());