diff options
author | Karol Herbst <git@karolherbst.de> | 2023-09-18 23:30:01 +0200 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2024-02-24 09:11:00 -0800 |
commit | 8137eb437a974d9e0a74160d145a3808f68a1a59 (patch) | |
tree | 55802d36bd64906a1ac3715a4fba610b78478862 /test cases/rust | |
parent | d44185026d7cdd83dad8f2da9cb8534c97293ec1 (diff) | |
download | meson-8137eb437a974d9e0a74160d145a3808f68a1a59.zip meson-8137eb437a974d9e0a74160d145a3808f68a1a59.tar.gz meson-8137eb437a974d9e0a74160d145a3808f68a1a59.tar.bz2 |
add test for generating static inline wrappers
Diffstat (limited to 'test cases/rust')
-rw-r--r-- | test cases/rust/12 bindgen/meson.build | 28 | ||||
-rw-r--r-- | test cases/rust/12 bindgen/src/header3.h | 12 | ||||
-rw-r--r-- | test cases/rust/12 bindgen/src/main3.rs | 14 |
3 files changed, 54 insertions, 0 deletions
diff --git a/test cases/rust/12 bindgen/meson.build b/test cases/rust/12 bindgen/meson.build index a88ed81..f31040e 100644 --- a/test cases/rust/12 bindgen/meson.build +++ b/test cases/rust/12 bindgen/meson.build @@ -99,6 +99,34 @@ rust_bin2 = executable( test('generated header', rust_bin2) +if prog_bindgen.version().version_compare('>= 0.65') + # Test generating a static inline wrapper + gen3 = rust.bindgen( + input : 'src/header3.h', + output : 'header3.rs', + output_inline_wrapper : 'header3.c', + include_directories : 'include', + ) + c_inline_wrapper = static_library('c_wrapper', gen3[1]) + + f = configure_file( + input : 'src/main3.rs', + output : 'main3.rs', + copy : true, + ) + + rust_bin3 = executable( + 'rust_bin3', + [f, gen3[0]], + link_with : [ + c_lib, + c_inline_wrapper, + ], + ) + + test('static inline wrapper', rust_bin3) +endif + subdir('sub') subdir('dependencies') diff --git a/test cases/rust/12 bindgen/src/header3.h b/test cases/rust/12 bindgen/src/header3.h new file mode 100644 index 0000000..958a79f --- /dev/null +++ b/test cases/rust/12 bindgen/src/header3.h @@ -0,0 +1,12 @@ +// SPDX-license-identifer: Apache-2.0 +// Copyright © 2023 Red Hat, Inc + +#pragma once + +#include "other.h" + +int32_t add(const int32_t, const int32_t); + +static inline int32_t sub(const int32_t a, const int32_t b) { + return a - b; +} diff --git a/test cases/rust/12 bindgen/src/main3.rs b/test cases/rust/12 bindgen/src/main3.rs new file mode 100644 index 0000000..fa9d30b --- /dev/null +++ b/test cases/rust/12 bindgen/src/main3.rs @@ -0,0 +1,14 @@ +// SPDX-license-identifer: Apache-2.0 +// Copyright © 2023 Red Hat, Inc + +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(non_snake_case)] + +include!("header3.rs"); + +fn main() { + unsafe { + std::process::exit(add(0, sub(0, 0))); + }; +} |