Skip to content

Commit 94f7ef7

Browse files
committed
Add wide chars in test
1 parent 1bc9b5e commit 94f7ef7

3 files changed

Lines changed: 126 additions & 0 deletions

File tree

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

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,67 @@ fn main_0() -> i32 {
192192
);
193193
let ew: Value<Box<[i32]>> = Rc::new(RefCell::new(Box::from([0 as i32, 0 as i32])));
194194
assert!(((*ew.borrow())[(0) as usize] == 0) && ((*ew.borrow())[(1) as usize] == 0));
195+
let wc: Value<i32> = Rc::new(RefCell::new((258 as i32)));
196+
let bc: Value<u8> = Rc::new(RefCell::new((65 as u8)));
197+
let sc: Value<u16> = Rc::new(RefCell::new((258 as u16)));
198+
let lc: Value<u32> = Rc::new(RefCell::new((258 as u32)));
199+
assert!(
200+
((((*wc.borrow()) == 258) && (((*bc.borrow()) as i32) == 65))
201+
&& (((*sc.borrow()) as i32) == 258))
202+
&& ((*lc.borrow()) == 258_u32)
203+
);
204+
assert!(
205+
(((::std::mem::size_of::<i32>() == ::std::mem::size_of::<i32>())
206+
&& (::std::mem::size_of::<u8>() == 1_usize))
207+
&& (::std::mem::size_of::<u16>() == 2_usize))
208+
&& (::std::mem::size_of::<u32>() == 4_usize)
209+
);
210+
assert!(
211+
((((*w.borrow()).offset((1) as isize).read()) == (258 as i32))
212+
&& ((((*s.borrow()).offset((1) as isize).read()) as i32) == ((258 as u16) as i32)))
213+
&& (((*l.borrow()).offset((1) as isize).read()) == (258 as u32))
214+
);
215+
assert!(
216+
((((*b.borrow()).offset((0) as isize).read()) as i32) == ((196 as u8) as i32))
217+
&& ((((*b.borrow()).offset((1) as isize).read()) as i32) == ((130 as u8) as i32))
218+
);
219+
assert!(
220+
(({
221+
second_6(Ptr::<Box<[i32]>>::from_string_literal_array(&[
222+
65 as i32, 258 as i32, 0 as i32,
223+
]))
224+
}) == (258 as i32))
225+
&& ((({
226+
second_8(Ptr::<Box<[u16]>>::from_string_literal_array(&[
227+
65 as u16, 258 as u16, 0 as u16,
228+
]))
229+
}) as i32)
230+
== ((258 as u16) as i32))
231+
);
232+
assert!(
233+
((({ get_4(Ptr::<u32>::from_string_literal(&[258 as u32, 0 as u32,]),) })
234+
.offset((0) as isize)
235+
.read())
236+
== (258 as u32))
237+
&& ((({ get_4(Ptr::<u32>::from_string_literal(&[258 as u32, 0 as u32,]),) })
238+
.offset((1) as isize)
239+
.read())
240+
== (0 as u32))
241+
);
242+
assert!((((10 as i32) == 10) && (((9 as u16) as i32) == 9)) && ((92 as u32) == 92_u32));
243+
assert!((((97 as i32) + 1) == (98 as i32)));
244+
assert!(((122 as u32).wrapping_sub((97 as u32)) == 25_u32));
245+
let wa: Value<Box<[i32]>> = Rc::new(RefCell::new(Box::new([
246+
(65 as i32),
247+
(258 as i32),
248+
(0 as i32),
249+
])));
250+
assert!(
251+
(((*wa.borrow())[(0) as usize] == 65) && ((*wa.borrow())[(1) as usize] == 258))
252+
&& ((*wa.borrow())[(2) as usize] == 0)
253+
);
254+
(*wa.borrow_mut())[(0) as usize] = (66 as i32);
255+
assert!(((*wa.borrow())[(0) as usize] == (('B' as u8) as i32)));
195256
return 0;
196257
}
197258
pub fn __cpp2rust_init_globals() {}

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

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,50 @@ unsafe fn main_0() -> i32 {
116116
);
117117
let ew: [i32; 2] = [0 as i32, 0 as i32];
118118
assert!(((ew[(0) as usize]) == (0)) && ((ew[(1) as usize]) == (0)));
119+
let mut wc: i32 = (258 as i32);
120+
let mut bc: u8 = (65 as u8);
121+
let mut sc: u16 = (258 as u16);
122+
let mut lc: u32 = (258 as u32);
123+
assert!(
124+
((((wc) == (258)) && ((bc as i32) == (65))) && ((sc as i32) == (258)))
125+
&& ((lc) == (258_u32))
126+
);
127+
assert!(
128+
((((::std::mem::size_of::<i32>()) == (::std::mem::size_of::<i32>()))
129+
&& ((::std::mem::size_of::<u8>()) == (1_usize)))
130+
&& ((::std::mem::size_of::<u16>()) == (2_usize)))
131+
&& ((::std::mem::size_of::<u32>()) == (4_usize))
132+
);
133+
assert!(
134+
(((*w.offset((1) as isize)) == (258 as i32))
135+
&& (((*s.offset((1) as isize)) as i32) == ((258 as u16) as i32)))
136+
&& ((*l.offset((1) as isize)) == (258 as u32))
137+
);
138+
assert!(
139+
(((*b.offset((0) as isize)) as i32) == ((196 as u8) as i32))
140+
&& (((*b.offset((1) as isize)) as i32) == ((130 as u8) as i32))
141+
);
142+
assert!(
143+
((unsafe { second_6(&[65 as i32, 258 as i32, 0 as i32,],) }) == (258 as i32))
144+
&& (((unsafe { second_8(&[65 as u16, 258 as u16, 0 as u16,],) }) as i32)
145+
== ((258 as u16) as i32))
146+
);
147+
assert!(
148+
((*(unsafe { get_4([258 as u32, 0 as u32,].as_ptr(),) }).offset((0) as isize))
149+
== (258 as u32))
150+
&& ((*(unsafe { get_4([258 as u32, 0 as u32,].as_ptr(),) }).offset((1) as isize))
151+
== (0 as u32))
152+
);
153+
assert!((((10 as i32) == (10)) && (((9 as u16) as i32) == (9))) && ((92 as u32) == (92_u32)));
154+
assert!((((97 as i32) + (1)) == (98 as i32)));
155+
assert!((((122 as u32).wrapping_sub((97 as u32))) == (25_u32)));
156+
let mut wa: [i32; 3] = [(65 as i32), (258 as i32), (0 as i32)];
157+
assert!(
158+
(((wa[(0) as usize]) == (65)) && ((wa[(1) as usize]) == (258)))
159+
&& ((wa[(2) as usize]) == (0))
160+
);
161+
wa[(0) as usize] = (66 as i32);
162+
assert!(((wa[(0) as usize]) == (('B' as libc::c_char) as i32)));
119163
return 0;
120164
}
121165
pub unsafe fn __cpp2rust_init_globals() {}

‎tests/unit/wide_char.cpp‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,26 @@ int main() {
5454

5555
const wchar_t ew[2] = L"";
5656
assert(ew[0] == 0 && ew[1] == 0);
57+
58+
wchar_t wc = L'Ă';
59+
char8_t bc = u8'A';
60+
char16_t sc = u'Ă';
61+
char32_t lc = U'Ă';
62+
assert(wc == 0x102 && bc == 0x41 && sc == 0x102 && lc == 0x102);
63+
assert(sizeof(L'a') == sizeof(wchar_t) && sizeof(u8'a') == 1 &&
64+
sizeof(u'a') == 2 && sizeof(U'a') == 4);
65+
66+
assert(w[1] == L'Ă' && s[1] == u'Ă' && l[1] == U'Ă');
67+
assert(b[0] == u8'\xC4' && b[1] == u8'\x82');
68+
assert(second(L"AĂ") == L'Ă' && second(u"AĂ") == u'Ă');
69+
assert(get(U"Ă")[0] == U'Ă' && get(U"Ă")[1] == U'\0');
70+
71+
assert(L'\n' == 10 && u'\t' == 9 && U'\\' == 92);
72+
assert(L'a' + 1 == L'b');
73+
assert(U'z' - U'a' == 25);
74+
wchar_t wa[3] = {L'A', L'Ă', L'\0'};
75+
assert(wa[0] == 0x41 && wa[1] == 0x102 && wa[2] == 0);
76+
wa[0] = L'B';
77+
assert(wa[0] == 'B');
5778
return 0;
5879
}

0 commit comments

Comments
 (0)