Skip to content

Commit 879cbcb

Browse files
committed
test: disable formatting on demand
1 parent 3880196 commit 879cbcb

File tree

3 files changed

+24
-15
lines changed

3 files changed

+24
-15
lines changed

bindgen-tests/tests/expectations/tests/derive-and-attribute-order.rs

Lines changed: 4 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindgen-tests/tests/headers/derive-and-attribute-order.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// bindgen-flags: --no-layout-tests
22
// bindgen-parse-callbacks: derive-uppercase-serialize=color
3+
// bindgen-skip-formatting
34
typedef struct {
45
int red;
56
int green;

bindgen-tests/tests/tests.rs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,17 +187,23 @@ fn compare_generated_header(
187187
looked_at,
188188
),
189189
};
190-
190+
let do_formatting = builder.do_formatting;
191191
let (builder, roundtrip_builder) = builder.into_builder(check_roundtrip)?;
192192

193193
// We skip the generate() error here so we get a full diff below
194194
let actual = match builder.generate() {
195-
Ok(bindings) => format_code(bindings.to_string()).map_err(|err| {
196-
Error::new(
197-
ErrorKind::Other,
198-
format!("Cannot parse the generated bindings: {err}"),
199-
)
200-
})?,
195+
Ok(bindings) => {
196+
if do_formatting {
197+
format_code(bindings.to_string()).map_err(|err| {
198+
Error::new(
199+
ErrorKind::Other,
200+
format!("Cannot parse the generated bindings: {err}"),
201+
)
202+
})?
203+
} else {
204+
bindings.to_string()
205+
}
206+
}
201207
Err(_) => "/* error generating bindings */\n".into(),
202208
};
203209

@@ -237,6 +243,7 @@ fn builder() -> Builder {
237243
struct BuilderState {
238244
builder: Builder,
239245
parse_callbacks: Option<String>,
246+
do_formatting: bool,
240247
}
241248

242249
impl BuilderState {
@@ -255,6 +262,7 @@ impl BuilderState {
255262
Some(BuilderState {
256263
builder,
257264
parse_callbacks: self.parse_callbacks,
265+
do_formatting: self.do_formatting,
258266
})
259267
} else {
260268
None
@@ -273,6 +281,7 @@ fn create_bindgen_builder(header: &Path) -> Result<BuilderState, Error> {
273281
// Scoop up bindgen-flags from test header
274282
let mut flags = Vec::with_capacity(2);
275283
let mut parse_callbacks = None;
284+
let mut do_formatting = true;
276285

277286
for line in reader.lines() {
278287
let line = line?;
@@ -298,6 +307,8 @@ fn create_bindgen_builder(header: &Path) -> Result<BuilderState, Error> {
298307
let parse_cb =
299308
line.split("bindgen-parse-callbacks: ").last().unwrap();
300309
parse_callbacks = Some(parse_cb.to_owned());
310+
} else if line.contains("bindgen-skip-formatting") {
311+
do_formatting = false;
301312
}
302313
}
303314

@@ -345,6 +356,7 @@ fn create_bindgen_builder(header: &Path) -> Result<BuilderState, Error> {
345356
Ok(BuilderState {
346357
builder,
347358
parse_callbacks,
359+
do_formatting,
348360
})
349361
}
350362

0 commit comments

Comments
 (0)