summaryrefslogtreecommitdiff
path: root/tests/tests.rs
diff options
context:
space:
mode:
authorAdam Perry <adamperry@google.com>2021-04-08 17:26:55 +0000
committerEmilio Cobos Álvarez <emilio@crisal.io>2021-04-24 00:51:44 +0200
commit1bb548b7a7c482e9851af9864a9736faee48a10b (patch)
treea285a423eed77ab7b667dc8e2bdfd1bf312c3c8d /tests/tests.rs
parentc39c47c2e5a3839ab57dec0d585b7e6af60416f6 (diff)
Support emitting Makefile-syntax depfiles like gcc/clang/rustc.
Needed to auto-bindgen with a ninja build without the build graph going stale.
Diffstat (limited to 'tests/tests.rs')
-rw-r--r--tests/tests.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/tests.rs b/tests/tests.rs
index 80ccc8c9..ced48540 100644
--- a/tests/tests.rs
+++ b/tests/tests.rs
@@ -579,6 +579,32 @@ fn no_system_header_includes() {
}
#[test]
+fn emit_depfile() {
+ let header = PathBuf::from("tests/headers/enum-default-rust.h");
+ let expected_depfile = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
+ .join("tests")
+ .join("expectations")
+ .join("tests")
+ .join("enum-default-rust.d");
+ let observed_depfile = tempfile::NamedTempFile::new().unwrap();
+ let mut builder = create_bindgen_builder(&header).unwrap();
+ builder.builder = builder.builder.depfile(
+ "tests/expectations/tests/enum-default-rust.rs",
+ observed_depfile.path(),
+ );
+
+ let check_roundtrip =
+ env::var_os("BINDGEN_DISABLE_ROUNDTRIP_TEST").is_none();
+ let (builder, _roundtrip_builder) =
+ builder.into_builder(check_roundtrip).unwrap();
+ let _bindings = builder.generate().unwrap();
+
+ let observed = std::fs::read_to_string(observed_depfile).unwrap();
+ let expected = std::fs::read_to_string(expected_depfile).unwrap();
+ assert_eq!(observed.trim(), expected.trim());
+}
+
+#[test]
fn dump_preprocessed_input() {
let arg_keyword =
concat!(env!("CARGO_MANIFEST_DIR"), "/tests/headers/arg_keyword.hpp");