1#[cfg(any(feature = "bundled", feature = "bundled_without_openssl"))]
2extern crate pq_src;
3
4#[allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
5mod bindings {
6 include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
7}
8
9pub use bindings::*;
10
11#[test]
12fn check_generated_bindings_match() {
13 let libpq_include_path = concat!(
14 env!("CARGO_MANIFEST_DIR"),
15 "/pq-src/source/src/interfaces/libpq/"
16 );
17 let postgres_include_path = concat!(env!("CARGO_MANIFEST_DIR"), "/pq-src/source/src/include");
18 let additional_includes_path =
19 concat!(env!("CARGO_MANIFEST_DIR"), "/pq-src/additional_include/");
20
21 let builder = include!("make_bindings.rs").clang_args([
22 "-I",
23 libpq_include_path,
24 "-I",
25 postgres_include_path,
26 "-I",
27 additional_includes_path,
28 ]);
29
30 let generated_bindings = builder.generate().expect("Unable to generate bindings");
31
32 let mut out = Vec::<u8>::new();
33 generated_bindings.write(Box::new(&mut out)).unwrap();
34 let generated_bindings = String::from_utf8(out).unwrap();
35
36 let bundled_bindings =
37 std::fs::read_to_string(String::from(env!("OUT_DIR")) + "/bindings.rs").unwrap();
38 similar_asserts::assert_eq!(generated_bindings, bundled_bindings,)
39}