summaryrefslogtreecommitdiff
path: root/tests/src/tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/tests.rs')
-rw-r--r--tests/src/tests.rs18
1 files changed, 16 insertions, 2 deletions
diff --git a/tests/src/tests.rs b/tests/src/tests.rs
index 51823361..b5f80663 100644
--- a/tests/src/tests.rs
+++ b/tests/src/tests.rs
@@ -35,6 +35,7 @@ const TYP_DIR: &str = "typ";
const REF_DIR: &str = "ref";
const PNG_DIR: &str = "png";
const PDF_DIR: &str = "pdf";
+const SVG_DIR: &str = "svg";
const FONT_DIR: &str = "../assets/fonts";
const ASSET_DIR: &str = "../assets";
@@ -116,11 +117,19 @@ fn main() {
let path = src_path.strip_prefix(TYP_DIR).unwrap();
let png_path = Path::new(PNG_DIR).join(path).with_extension("png");
let ref_path = Path::new(REF_DIR).join(path).with_extension("png");
+ let svg_path = Path::new(SVG_DIR).join(path).with_extension("svg");
let pdf_path =
args.pdf.then(|| Path::new(PDF_DIR).join(path).with_extension("pdf"));
- test(world, &src_path, &png_path, &ref_path, pdf_path.as_deref(), &args)
- as usize
+ test(
+ world,
+ &src_path,
+ &png_path,
+ &ref_path,
+ pdf_path.as_deref(),
+ &svg_path,
+ &args,
+ ) as usize
})
.collect::<Vec<_>>();
@@ -328,6 +337,7 @@ fn test(
png_path: &Path,
ref_path: &Path,
pdf_path: Option<&Path>,
+ svg_path: &Path,
args: &Args,
) -> bool {
struct PanicGuard<'a>(&'a Path);
@@ -419,6 +429,10 @@ fn test(
fs::create_dir_all(png_path.parent().unwrap()).unwrap();
canvas.save_png(png_path).unwrap();
+ let svg = typst::export::svg(&document);
+ fs::create_dir_all(svg_path.parent().unwrap()).unwrap();
+ std::fs::write(svg_path, svg).unwrap();
+
if let Ok(ref_pixmap) = sk::Pixmap::load_png(ref_path) {
if canvas.width() != ref_pixmap.width()
|| canvas.height() != ref_pixmap.height()