aboutsummaryrefslogtreecommitdiff
path: root/test cases/rust
diff options
context:
space:
mode:
authorKarol Herbst <git@karolherbst.de>2023-09-18 23:30:01 +0200
committerDylan Baker <dylan@pnwbakers.com>2024-02-24 09:11:00 -0800
commit8137eb437a974d9e0a74160d145a3808f68a1a59 (patch)
tree55802d36bd64906a1ac3715a4fba610b78478862 /test cases/rust
parentd44185026d7cdd83dad8f2da9cb8534c97293ec1 (diff)
downloadmeson-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.build28
-rw-r--r--test cases/rust/12 bindgen/src/header3.h12
-rw-r--r--test cases/rust/12 bindgen/src/main3.rs14
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)));
+ };
+}