summaryrefslogtreecommitdiff
path: root/test cases/rust/1 basic
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2023-02-22 13:30:58 -0800
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2023-04-21 15:18:56 +0530
commitc62989ce80c562c655795ffc6fc799b9a048dc59 (patch)
tree657bc94a2d4c2061c35a16e506c0c59309807692 /test cases/rust/1 basic
parentf80f40fa4feb0fa3f365f3debcbe2a43d7d125af (diff)
downloadmeson-c62989ce80c562c655795ffc6fc799b9a048dc59.tar.gz
rust: add support for b_ndebug
Rust has a `debug_assert!()` macro, which is designed to be toggled on the command line. It is on by default in debug builds, and off by default in release builds, in cargo. This matches what meson's b_ndebug option does in `if-release` mode.
Diffstat (limited to 'test cases/rust/1 basic')
-rw-r--r--test cases/rust/1 basic/meson.build13
-rw-r--r--test cases/rust/1 basic/prog.rs1
2 files changed, 13 insertions, 1 deletions
diff --git a/test cases/rust/1 basic/meson.build b/test cases/rust/1 basic/meson.build
index 63ad375de..3ba987710 100644
--- a/test cases/rust/1 basic/meson.build
+++ b/test cases/rust/1 basic/meson.build
@@ -1,4 +1,4 @@
-project('rustprog', 'rust')
+project('rustprog', 'rust', default_options : ['b_ndebug=true'])
e = executable('rust-program', 'prog.rs',
rust_args : ['-C', 'lto'], # Just a test
@@ -7,3 +7,14 @@ e = executable('rust-program', 'prog.rs',
test('rusttest', e)
subdir('subdir')
+
+# this should fail due to debug_assert
+test(
+ 'debug_assert_on',
+ executable(
+ 'rust-program2',
+ 'prog.rs',
+ override_options : ['b_ndebug=false'],
+ ),
+ should_fail : true,
+)
diff --git a/test cases/rust/1 basic/prog.rs b/test cases/rust/1 basic/prog.rs
index f1b3d303d..69d29359c 100644
--- a/test cases/rust/1 basic/prog.rs
+++ b/test cases/rust/1 basic/prog.rs
@@ -1,4 +1,5 @@
fn main() {
let foo = "rust compiler is working";
+ debug_assert!(false, "debug_asserts on!");
println!("{}", foo);
}