From 6d5ca96e4f401b446b2e9490b6d24de5e639880c Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Wed, 23 Sep 2020 12:52:46 +0200 Subject: Add verify-bindings make target This patch adds the verify-bindings make target that re-generates the bindings using bindgen and verifies that they do not differ from the pre-generated bindings in the Git repository. --- Makefile | 9 +++++++++ README.md | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/Makefile b/Makefile index b0b5bba..0f4c371 100644 --- a/Makefile +++ b/Makefile @@ -14,3 +14,12 @@ src/ffi.rs: ${LIBNITROKEY}/NK_C_API.h "$<" \ -- "-I${LIBNITROKEY}/libnitrokey" quilt push -a --refresh + +.PHONY: verify-bindings +verify-bindings: + @git diff --exit-code src/ffi.rs || \ + (echo "This test can only be executed on a clean working tree"; exit 1) + @$(MAKE) --always-make src/ffi.rs > /dev/null + @git diff --exit-code src/ffi.rs && \ + (echo "The generated bindings have been verified successfully!") || \ + (echo "Error: The generated bindings differ from the pre-generated bindings!"; exit 1) diff --git a/README.md b/README.md index 2646a33..e94874d 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,11 @@ including layout tests, specifically for your platform during the build, activate the `bindgen` feature. In this case, you will also need `clang` and `libclang` in the default search path. +Alternatively, you can execute `make verify-bindings` to compare the +pre-generated bindings with the bindings that `bindgen` generates for your +platform. This check only works on a clean Git working tree and requires the +`bindgen` binary, `git` and `quilt`. + ## Versioning The major and minor version of the `nitrokey-sys` crate map to the major and -- cgit v1.2.3