Skip to content

Commit 8466e9f

Browse files
committed
make skipping compile time
1 parent 64b385d commit 8466e9f

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

krilla-macros/src/lib.rs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ enum SnapshotMode {
2424
Document,
2525
}
2626

27+
const SKIP_SNAPSHOT: Option<&str> = option_env!("SKIP_SNAPSHOT");
28+
2729
#[proc_macro_attribute]
2830
pub fn snapshot(attr: TokenStream, item: TokenStream) -> TokenStream {
2931
let attrs = parse_macro_input!(attr as AttributeInput);
@@ -55,13 +57,9 @@ pub fn snapshot(attr: TokenStream, item: TokenStream) -> TokenStream {
5557

5658
let common = quote! {
5759
use crate::serialize::{SerializeSettings, SerializerContext};
58-
use crate::tests::{SKIP_SNAPSHOT, check_snapshot};
60+
use crate::tests::check_snapshot;
5961
use crate::document::{Document, PageSettings};
6062
use crate::Size;
61-
62-
if SKIP_SNAPSHOT.is_some() {
63-
return;
64-
}
6563
};
6664

6765
let fn_content = match mode {
@@ -97,9 +95,16 @@ pub fn snapshot(attr: TokenStream, item: TokenStream) -> TokenStream {
9795
}
9896
};
9997

98+
let ignore_snippet = if SKIP_SNAPSHOT.is_some() {
99+
quote! { #[ignore] }
100+
} else {
101+
quote! {}
102+
};
103+
100104
let expanded = quote! {
101105
#input_fn
102106

107+
#ignore_snippet
103108
#[test]
104109
fn #fn_name() {
105110
#fn_content
@@ -127,11 +132,14 @@ impl RendererExt for Renderer {
127132
}
128133
}
129134

135+
const SKIP_VISREG: Option<&str> = option_env!("SKIP_VISREG");
136+
130137
#[proc_macro_attribute]
131138
pub fn visreg(attr: TokenStream, item: TokenStream) -> TokenStream {
132139
let attrs = parse_macro_input!(attr as AttributeInput);
133140
let mut serialize_settings = format_ident!("default");
134141

142+
135143
let mut pdfium = false;
136144
let mut mupdf = false;
137145
let mut pdfbox = false;
@@ -224,6 +232,12 @@ pub fn visreg(attr: TokenStream, item: TokenStream) -> TokenStream {
224232
let name = format_ident!("{}_visreg_{}", fn_name.to_string(), renderer.name());
225233
let renderer_ident = renderer.as_token_stream();
226234

235+
let ignore_snippet = if SKIP_VISREG.is_some() {
236+
quote! { #[ignore] }
237+
} else {
238+
quote! {}
239+
};
240+
227241
let quartz_snippet = if renderer == Renderer::Quartz {
228242
quote! { #[cfg(target_os = "macos")] }
229243
} else {
@@ -232,19 +246,17 @@ pub fn visreg(attr: TokenStream, item: TokenStream) -> TokenStream {
232246

233247
if include {
234248
quote! {
249+
#ignore_snippet
235250
#quartz_snippet
236251
#[test]
237252
fn #name() {
238-
use crate::tests::{render_document, check_render, SKIP_VISREG};
253+
use crate::tests::{render_document, check_render};
239254
use crate::Size;
240255
use crate::document::{Document, PageSettings};
241256
use crate::serialize::SerializeSettings;
242257
use sitro::Renderer;
243258
let renderer = #renderer_ident;
244259

245-
if SKIP_VISREG.is_some() {
246-
return;
247-
}
248260
#fn_body
249261
}
250262
}

src/tests/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ mod visreg;
2525

2626
const REPLACE: Option<&str> = option_env!("REPLACE");
2727
const STORE: Option<&str> = option_env!("STORE");
28-
pub const SKIP_VISREG: Option<&str> = option_env!("SKIP_VISREG");
29-
pub const SKIP_SNAPSHOT: Option<&str> = option_env!("SKIP_SNAPSHOT");
3028

3129
static ASSETS_PATH: LazyLock<PathBuf> =
3230
LazyLock::new(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("assets"));

0 commit comments

Comments
 (0)