#[test]
fn test_bindings_up_to_date() {
let expected = bindgen::Builder::default()
.header("wrapper.h")
.trust_clang_mangling(false)
.generate_comments(true)
.layout_tests(false)
.whitelist_function("Binaryen.*")
.whitelist_type("Binaryen.*")
.whitelist_function("translateToFuzz")
.whitelist_recursively(false)
.generate()
.expect("Unable to generate bindings")
.to_string();
if std::env::var("BLESS").is_ok() {
std::fs::write("src/bindings.rs", expected).unwrap();
} else {
let actual = include_str!("../src/bindings.rs");
if expected == actual {
return;
}
for diff in diff::lines(&expected, &actual) {
match diff {
diff::Result::Both(_, s) => println!(" {}", s),
diff::Result::Left(s) => println!("-{}", s),
diff::Result::Right(s) => println!("+{}", s),
}
}
panic!("differences found, need to regenerate bindings");
}
}