Skip to content

Commit c2d2316

Browse files
committed
Add missing tests for c/r_return_mut
1 parent 6e2b3ac commit c2d2316

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

tests/ffi/tests.cc

+7
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,13 @@ extern "C" const char *cxx_run_test() noexcept {
380380
ASSERT(cxx_test_suite_r_is_correct(&*r_return_box()));
381381
ASSERT(r_return_unique_ptr()->get() == 2020);
382382
ASSERT(r_return_ref(Shared{2020}) == 2020);
383+
{
384+
Shared shared{2019};
385+
size_t &mut_z = r_return_mut(shared);
386+
ASSERT(mut_z == 2019);
387+
mut_z = 2020;
388+
ASSERT(r_return_ref(shared) == 2020);
389+
}
383390
ASSERT(std::string(r_return_str(Shared{2020})) == "2020");
384391
ASSERT(std::string(r_return_rust_string()) == "2020");
385392
ASSERT(*r_return_unique_ptr_string() == "2020");

tests/test.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,21 @@ macro_rules! check {
2121

2222
#[test]
2323
fn test_c_return() {
24-
let shared = ffi::Shared { z: 2020 };
24+
let mut shared = ffi::Shared { z: 2020 };
2525

2626
assert_eq!(2020, ffi::c_return_primitive());
2727
assert_eq!(2020, ffi::c_return_shared().z);
2828
assert_eq!(2020, *ffi::c_return_box());
2929
ffi::c_return_unique_ptr();
3030
assert_eq!(2020, *ffi::c_return_ref(&shared));
31+
32+
{
33+
shared.z = 2019;
34+
let mut_z = ffi::c_return_mut(&mut shared);
35+
assert_eq!(2019, *mut_z);
36+
*mut_z = 2020;
37+
}
38+
3139
assert_eq!("2020", ffi::c_return_str(&shared));
3240
assert_eq!(b"2020\0", ffi::c_return_sliceu8(&shared));
3341
assert_eq!("2020", ffi::c_return_rust_string());

0 commit comments

Comments
 (0)