@@ -24,6 +24,8 @@ enum SnapshotMode {
24
24
Document ,
25
25
}
26
26
27
+ const SKIP_SNAPSHOT : Option < & str > = option_env ! ( "SKIP_SNAPSHOT" ) ;
28
+
27
29
#[ proc_macro_attribute]
28
30
pub fn snapshot ( attr : TokenStream , item : TokenStream ) -> TokenStream {
29
31
let attrs = parse_macro_input ! ( attr as AttributeInput ) ;
@@ -55,13 +57,9 @@ pub fn snapshot(attr: TokenStream, item: TokenStream) -> TokenStream {
55
57
56
58
let common = quote ! {
57
59
use crate :: serialize:: { SerializeSettings , SerializerContext } ;
58
- use crate :: tests:: { SKIP_SNAPSHOT , check_snapshot} ;
60
+ use crate :: tests:: check_snapshot;
59
61
use crate :: document:: { Document , PageSettings } ;
60
62
use crate :: Size ;
61
-
62
- if SKIP_SNAPSHOT . is_some( ) {
63
- return ;
64
- }
65
63
} ;
66
64
67
65
let fn_content = match mode {
@@ -97,9 +95,16 @@ pub fn snapshot(attr: TokenStream, item: TokenStream) -> TokenStream {
97
95
}
98
96
} ;
99
97
98
+ let ignore_snippet = if SKIP_SNAPSHOT . is_some ( ) {
99
+ quote ! { #[ ignore] }
100
+ } else {
101
+ quote ! { }
102
+ } ;
103
+
100
104
let expanded = quote ! {
101
105
#input_fn
102
106
107
+ #ignore_snippet
103
108
#[ test]
104
109
fn #fn_name( ) {
105
110
#fn_content
@@ -127,11 +132,14 @@ impl RendererExt for Renderer {
127
132
}
128
133
}
129
134
135
+ const SKIP_VISREG : Option < & str > = option_env ! ( "SKIP_VISREG" ) ;
136
+
130
137
#[ proc_macro_attribute]
131
138
pub fn visreg ( attr : TokenStream , item : TokenStream ) -> TokenStream {
132
139
let attrs = parse_macro_input ! ( attr as AttributeInput ) ;
133
140
let mut serialize_settings = format_ident ! ( "default" ) ;
134
141
142
+
135
143
let mut pdfium = false ;
136
144
let mut mupdf = false ;
137
145
let mut pdfbox = false ;
@@ -224,6 +232,12 @@ pub fn visreg(attr: TokenStream, item: TokenStream) -> TokenStream {
224
232
let name = format_ident ! ( "{}_visreg_{}" , fn_name. to_string( ) , renderer. name( ) ) ;
225
233
let renderer_ident = renderer. as_token_stream ( ) ;
226
234
235
+ let ignore_snippet = if SKIP_VISREG . is_some ( ) {
236
+ quote ! { #[ ignore] }
237
+ } else {
238
+ quote ! { }
239
+ } ;
240
+
227
241
let quartz_snippet = if renderer == Renderer :: Quartz {
228
242
quote ! { #[ cfg( target_os = "macos" ) ] }
229
243
} else {
@@ -232,19 +246,17 @@ pub fn visreg(attr: TokenStream, item: TokenStream) -> TokenStream {
232
246
233
247
if include {
234
248
quote ! {
249
+ #ignore_snippet
235
250
#quartz_snippet
236
251
#[ test]
237
252
fn #name( ) {
238
- use crate :: tests:: { render_document, check_render, SKIP_VISREG } ;
253
+ use crate :: tests:: { render_document, check_render} ;
239
254
use crate :: Size ;
240
255
use crate :: document:: { Document , PageSettings } ;
241
256
use crate :: serialize:: SerializeSettings ;
242
257
use sitro:: Renderer ;
243
258
let renderer = #renderer_ident;
244
259
245
- if SKIP_VISREG . is_some( ) {
246
- return ;
247
- }
248
260
#fn_body
249
261
}
250
262
}
0 commit comments