[librsvg: 11/33] Move the remaining test code from librsvg_crate to tests
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 11/33] Move the remaining test code from librsvg_crate to tests
- Date: Mon, 2 Nov 2020 16:59:47 +0000 (UTC)
commit eb736cbb92601d3a2af8592534893e2c22eec878
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Oct 29 17:58:48 2020 -0600
Move the remaining test code from librsvg_crate to tests
build.rs | 1 -
librsvg_crate/tests/standalone/main.rs | 5 ---
librsvg_crate/tests/standalone/utils.rs | 39 -------------------
src/lib.rs | 4 +-
.../tests/standalone => tests/src}/api.rs | 0
.../tests/standalone => tests/src}/bugs.rs | 0
.../src}/intrinsic_dimensions.rs | 0
tests/src/main.rs | 12 ++++++
.../tests/standalone => tests/src}/primitives.rs | 0
tests/src/reference.rs | 2 +-
tests/src/utils.rs | 45 ++++++++++++++++++++--
11 files changed, 56 insertions(+), 52 deletions(-)
---
diff --git a/build.rs b/build.rs
index 04c68a3d..178935e1 100644
--- a/build.rs
+++ b/build.rs
@@ -78,7 +78,6 @@ fn check_for_pangoft2() {
}
}
-
/// Converts an sRGB color value to a linear sRGB color value (undoes the gamma correction).
///
/// The input and the output are supposed to be in the [0, 1] range.
diff --git a/src/lib.rs b/src/lib.rs
index 290d361a..8949ce8c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -85,8 +85,8 @@ mod node;
#[macro_use]
mod property_macros;
-mod api;
mod angle;
+mod api;
mod aspect_ratio;
mod attributes;
mod bbox;
@@ -144,5 +144,5 @@ pub mod doctest_only {
pub use crate::href::is_href;
pub use crate::href::set_href;
pub use crate::length::{Both, Horizontal, Length, LengthUnit, Vertical};
- pub use crate::parsers::{ParseValue, Parse};
+ pub use crate::parsers::{Parse, ParseValue};
}
diff --git a/librsvg_crate/tests/standalone/api.rs b/tests/src/api.rs
similarity index 100%
rename from librsvg_crate/tests/standalone/api.rs
rename to tests/src/api.rs
diff --git a/librsvg_crate/tests/standalone/bugs.rs b/tests/src/bugs.rs
similarity index 100%
rename from librsvg_crate/tests/standalone/bugs.rs
rename to tests/src/bugs.rs
diff --git a/librsvg_crate/tests/standalone/intrinsic_dimensions.rs b/tests/src/intrinsic_dimensions.rs
similarity index 100%
rename from librsvg_crate/tests/standalone/intrinsic_dimensions.rs
rename to tests/src/intrinsic_dimensions.rs
diff --git a/tests/src/main.rs b/tests/src/main.rs
index cec31e9e..adfb52f2 100644
--- a/tests/src/main.rs
+++ b/tests/src/main.rs
@@ -2,18 +2,30 @@
#[macro_use]
extern crate float_cmp;
+#[cfg(test)]
+mod api;
+
+#[cfg(test)]
+mod bugs;
+
#[cfg(test)]
mod cmdline;
#[cfg(test)]
mod errors;
+#[cfg(test)]
+mod intrinsic_dimensions;
+
#[cfg(test)]
mod loading_crash;
#[cfg(test)]
mod predicates;
+#[cfg(test)]
+mod primitives;
+
#[cfg(test)]
mod reference;
diff --git a/librsvg_crate/tests/standalone/primitives.rs b/tests/src/primitives.rs
similarity index 100%
rename from librsvg_crate/tests/standalone/primitives.rs
rename to tests/src/primitives.rs
diff --git a/tests/src/reference.rs b/tests/src/reference.rs
index 6dc47e59..5dade027 100644
--- a/tests/src/reference.rs
+++ b/tests/src/reference.rs
@@ -11,9 +11,9 @@ use test_generator::test_resources;
use cairo;
use librsvg::{
- CairoRenderer, IntrinsicDimensions, Length, Loader,
surface_utils::shared_surface::{SharedImageSurface, SurfaceType},
test_utils::compare_to_file,
+ CairoRenderer, IntrinsicDimensions, Length, Loader,
};
use std::path::PathBuf;
diff --git a/tests/src/utils.rs b/tests/src/utils.rs
index 3892fc34..2e500ff6 100644
--- a/tests/src/utils.rs
+++ b/tests/src/utils.rs
@@ -1,11 +1,51 @@
#![cfg(test)]
+#![allow(unused)]
+use cairo;
+use gio;
+use glib;
use glib::translate::*;
use libc;
use std::env;
use std::ffi::CString;
use std::sync::Once;
+use librsvg::{
+ surface_utils::shared_surface::{SharedImageSurface, SurfaceType},
+ CairoRenderer, Loader, LoadingError, RenderingError, SvgHandle,
+};
+
+pub fn load_svg(input: &'static [u8]) -> Result<SvgHandle, LoadingError> {
+ let bytes = glib::Bytes::from_static(input);
+ let stream = gio::MemoryInputStream::new_from_bytes(&bytes);
+
+ Loader::new().read_stream(&stream, None::<&gio::File>, None::<&gio::Cancellable>)
+}
+
+#[derive(Copy, Clone)]
+pub struct SurfaceSize(pub i32, pub i32);
+
+pub fn render_document<F: FnOnce(&cairo::Context)>(
+ svg: &SvgHandle,
+ surface_size: SurfaceSize,
+ cr_transform: F,
+ viewport: cairo::Rectangle,
+) -> Result<SharedImageSurface, RenderingError> {
+ let renderer = CairoRenderer::new(svg);
+
+ let SurfaceSize(width, height) = surface_size;
+
+ let output = cairo::ImageSurface::create(cairo::Format::ARgb32, width, height).unwrap();
+
+ let res = {
+ let cr = cairo::Context::new(&output);
+ cr_transform(&cr);
+ Ok(renderer.render_document(&cr, &viewport)?)
+ };
+
+ res.and_then(|_| Ok(SharedImageSurface::wrap(output, SurfaceType::SRgb)?))
+}
+
#[cfg(have_pangoft2)]
mod pango_ft2 {
use super::*;
@@ -37,10 +77,7 @@ mod pango_ft2 {
let path_cstring = CString::new(*path).unwrap();
if fontconfig::FcConfigAppFontAddFile(config, path_cstring.as_ptr() as *const _) == 0 {
- panic!(
- "Could not load font file {} for tests; aborting",
- path,
- );
+ panic!("Could not load font file {} for tests; aborting", path,);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]