[librsvg: 18/53] Test that the reference files are of the expected size
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 18/53] Test that the reference files are of the expected size
- Date: Fri, 23 Oct 2020 02:19:06 +0000 (UTC)
commit c14c309f31ef9f257ede5a8398c7b78760c106c1
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Oct 14 16:58:29 2020 -0500
Test that the reference files are of the expected size
Also, implement the "ignore" prefix.
tests/src/reference.rs | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
---
diff --git a/tests/src/reference.rs b/tests/src/reference.rs
index c7cb7e7d..d9ffca17 100644
--- a/tests/src/reference.rs
+++ b/tests/src/reference.rs
@@ -9,7 +9,11 @@
#![cfg(test)]
use test_generator::test_resources;
+use cairo;
use librsvg::{CairoRenderer, IntrinsicDimensions, Length, LengthUnit, Loader};
+use std::fs::File;
+use std::io::BufReader;
+use std::path::PathBuf;
use crate::utils::fixture_path;
@@ -18,6 +22,11 @@ const TEST_SUITE_DPI: f64 = 72.0;
fn reference_test(name: &str) {
let path = fixture_path(name);
+ if path.file_stem().unwrap().to_string_lossy().starts_with("ignore") {
+ return;
+ }
+
+ let reference = reference_path(&path);
let handle = Loader::new()
.read_path(path)
@@ -26,6 +35,21 @@ fn reference_test(name: &str) {
let renderer = CairoRenderer::new(&handle).with_dpi(TEST_SUITE_DPI, TEST_SUITE_DPI);
let (width, height) = image_size(renderer.intrinsic_dimensions(), TEST_SUITE_DPI);
+
+ let mut reference_file = BufReader::new(File::open(reference).unwrap());
+ let expected = cairo::ImageSurface::create_from_png(&mut reference_file).unwrap();
+
+ assert!(width == expected.get_width() && height == expected.get_height());
+}
+
+/// Turns `/foo/bar/baz.svg` into `/foo/bar/baz-ref.svg`.
+fn reference_path(path: &PathBuf) -> PathBuf {
+ let basename = path.file_stem().unwrap();
+
+ let mut reference_filename = basename.to_string_lossy().into_owned();
+ reference_filename.push_str("-ref.png");
+
+ path.with_file_name(reference_filename)
}
/// Computes the (width, height) pixel size at which an SVG should be rendered, based on its intrinsic
dimensions.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]