File tree 2 files changed +16
-1
lines changed
2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -380,6 +380,13 @@ extern "C" const char *cxx_run_test() noexcept {
380
380
ASSERT (cxx_test_suite_r_is_correct (&*r_return_box ()));
381
381
ASSERT (r_return_unique_ptr ()->get () == 2020 );
382
382
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
+ }
383
390
ASSERT (std::string (r_return_str (Shared{2020 })) == " 2020" );
384
391
ASSERT (std::string (r_return_rust_string ()) == " 2020" );
385
392
ASSERT (*r_return_unique_ptr_string () == " 2020" );
Original file line number Diff line number Diff line change @@ -21,13 +21,21 @@ macro_rules! check {
21
21
22
22
#[ test]
23
23
fn test_c_return ( ) {
24
- let shared = ffi:: Shared { z : 2020 } ;
24
+ let mut shared = ffi:: Shared { z : 2020 } ;
25
25
26
26
assert_eq ! ( 2020 , ffi:: c_return_primitive( ) ) ;
27
27
assert_eq ! ( 2020 , ffi:: c_return_shared( ) . z) ;
28
28
assert_eq ! ( 2020 , * ffi:: c_return_box( ) ) ;
29
29
ffi:: c_return_unique_ptr ( ) ;
30
30
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
+
31
39
assert_eq ! ( "2020" , ffi:: c_return_str( & shared) ) ;
32
40
assert_eq ! ( b"2020\0 " , ffi:: c_return_sliceu8( & shared) ) ;
33
41
assert_eq ! ( "2020" , ffi:: c_return_rust_string( ) ) ;
You can’t perform that action at this time.
0 commit comments