diff options
author | Adam Perry <adamperry@google.com> | 2021-04-08 17:26:55 +0000 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2021-04-24 00:51:44 +0200 |
commit | 1bb548b7a7c482e9851af9864a9736faee48a10b (patch) | |
tree | a285a423eed77ab7b667dc8e2bdfd1bf312c3c8d /tests/tests.rs | |
parent | c39c47c2e5a3839ab57dec0d585b7e6af60416f6 (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.rs | 26 |
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"); |