Skip to content

Commit b7124b8

Browse files
committed
Update tests
1 parent 21abfb0 commit b7124b8

2 files changed

Lines changed: 104 additions & 0 deletions

File tree

‎tests/unit/out/refcount/comma_operator.rs‎

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ use std::io::prelude::*;
66
use std::io::{Read, Seek, Write};
77
use std::os::fd::AsFd;
88
use std::rc::{Rc, Weak};
9+
#[derive(Clone, Record, ByteRepr, VaArg, FnPtrArg, Default)]
10+
#[byte_size(8)]
11+
pub struct Pair {
12+
#[offset(0)]
13+
pub first: i32,
14+
#[offset(4)]
15+
pub second: i32,
16+
}
17+
pub fn twice_0(v: Ptr<i64>) -> i64 {
18+
return ((v.read()) * 2_i64);
19+
}
20+
pub fn sum_1(p: Ptr<Pair>) -> i32 {
21+
return ({ p.with(|__s| __s.first) } + { p.with(|__s| __s.second) });
22+
}
923
pub fn main() {
1024
__cpp2rust_init_globals();
1125
std::process::exit(main_0());
@@ -48,6 +62,45 @@ fn main_0() -> i32 {
4862
assert!((a == 1));
4963
assert!((b == 2));
5064
}
65+
let v1: Value<Vec<i32>> = Rc::new(RefCell::new(vec![1, 2]));
66+
let mut v2: Vec<i32> = {
67+
a = 5;
68+
(*v1.borrow()).clone()
69+
}
70+
.clone();
71+
{
72+
let __a1 = 3;
73+
v2.push(__a1)
74+
};
75+
assert!((a == 5));
76+
assert!(((*v1.borrow()).len() == 2_usize));
77+
assert!((v2.len() == 3_usize));
78+
let p1: Value<Pair> = Rc::new(RefCell::new(Pair {
79+
first: 1,
80+
second: 2,
81+
}));
82+
let mut p2: Pair = {
83+
b = 6;
84+
(*p1.borrow()).clone()
85+
};
86+
p2.first = 10;
87+
assert!(({ (*p1.borrow()).first } == 1));
88+
assert!((p2.first == 10));
89+
assert!(
90+
(({
91+
let _v: Value<i64> = Rc::new(RefCell::new((a as i64)));
92+
twice_0(_v.as_pointer())
93+
}) == 10_i64)
94+
);
95+
assert!(
96+
(({
97+
sum_1({
98+
a = 7;
99+
p1.as_pointer()
100+
})
101+
}) == 3)
102+
);
103+
assert!((a == 7));
51104
return 0;
52105
}
53106
pub fn __cpp2rust_init_globals() {}

‎tests/unit/out/unsafe/comma_operator.rs‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ use std::collections::BTreeMap;
66
use std::io::{Read, Seek, Write};
77
use std::os::fd::{AsFd, FromRawFd, IntoRawFd};
88
use std::rc::Rc;
9+
#[repr(C)]
10+
#[derive(Copy, Clone, VaArg, FnPtrArg, Default)]
11+
pub struct Pair {
12+
pub first: i32,
13+
pub second: i32,
14+
}
15+
pub unsafe fn twice_0(v: *const i64) -> i64 {
16+
return ((*v) * (2_i64));
17+
}
18+
pub unsafe fn sum_1(p: *const Pair) -> i32 {
19+
return (((*p).first) + ((*p).second));
20+
}
921
pub fn main() {
1022
unsafe {
1123
__cpp2rust_init_globals();
@@ -50,6 +62,45 @@ unsafe fn main_0() -> i32 {
5062
assert!(((a) == (1)));
5163
assert!(((b) == (2)));
5264
}
65+
let mut v1: Vec<i32> = vec![1, 2];
66+
let mut v2: Vec<i32> = {
67+
a = 5;
68+
(v1).clone()
69+
}
70+
.clone();
71+
{
72+
let __a1 = 3;
73+
v2.push(__a1)
74+
};
75+
assert!(((a) == (5)));
76+
assert!(((v1.len()) == (2_usize)));
77+
assert!(((v2.len()) == (3_usize)));
78+
let mut p1: Pair = Pair {
79+
first: 1,
80+
second: 2,
81+
};
82+
let mut p2: Pair = {
83+
b = 6;
84+
p1
85+
};
86+
p2.first = 10;
87+
assert!(((p1.first) == (1)));
88+
assert!(((p2.first) == (10)));
89+
assert!(
90+
((unsafe {
91+
let mut _v: i64 = (a as i64);
92+
twice_0(&mut _v)
93+
}) == (10_i64))
94+
);
95+
assert!(
96+
((unsafe {
97+
sum_1(&{
98+
a = 7;
99+
p1
100+
})
101+
}) == (3))
102+
);
103+
assert!(((a) == (7)));
53104
return 0;
54105
}
55106
pub unsafe fn __cpp2rust_init_globals() {}

0 commit comments

Comments
 (0)