Skip to content

Commit 209dbed

Browse files
committed
Add unit tests for Value from u32/u64
1 parent 309d1b6 commit 209dbed

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

lib/wasmer-types/src/values.rs

+75
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,78 @@ impl<T> From<ExternRef> for Value<T> {
222222
// Self::FuncRef(val)
223223
// }
224224
// }
225+
226+
#[cfg(test)]
227+
mod tests {
228+
use super::*;
229+
230+
#[test]
231+
fn test_value_i32_from_u32() {
232+
let input: u32 = 0x00000000;
233+
let value = Value::<()>::from(input);
234+
let mut out: i128 = 0;
235+
unsafe {
236+
value.write_value_to(&mut out as *mut i128);
237+
}
238+
assert_eq!(out, 0x00000000);
239+
240+
let input: u32 = 0x00000001;
241+
let value = Value::<()>::from(input);
242+
let mut out: i128 = 0;
243+
unsafe {
244+
value.write_value_to(&mut out as *mut i128);
245+
}
246+
assert_eq!(out, 0x00000001);
247+
248+
let input: u32 = 0xaabbccdd;
249+
let value = Value::<()>::from(input);
250+
let mut out: i128 = 0;
251+
unsafe {
252+
value.write_value_to(&mut out as *mut i128);
253+
}
254+
assert_eq!(out, 0xaabbccdd);
255+
256+
let input: u32 = 0xffffffff;
257+
let value = Value::<()>::from(input);
258+
let mut out: i128 = 0;
259+
unsafe {
260+
value.write_value_to(&mut out as *mut i128);
261+
}
262+
assert_eq!(out, 0xffffffff);
263+
}
264+
265+
#[test]
266+
fn test_value_i64_from_u64() {
267+
let input: u64 = 0x0000000000000000;
268+
let value = Value::<()>::from(input);
269+
let mut out: i128 = 0;
270+
unsafe {
271+
value.write_value_to(&mut out as *mut i128);
272+
}
273+
assert_eq!(out, 0x0000000000000000);
274+
275+
let input: u64 = 0x0000000000000001;
276+
let value = Value::<()>::from(input);
277+
let mut out: i128 = 0;
278+
unsafe {
279+
value.write_value_to(&mut out as *mut i128);
280+
}
281+
assert_eq!(out, 0x0000000000000001);
282+
283+
let input: u64 = 0xaabbccddeeff0011;
284+
let value = Value::<()>::from(input);
285+
let mut out: i128 = 0;
286+
unsafe {
287+
value.write_value_to(&mut out as *mut i128);
288+
}
289+
assert_eq!(out, 0xaabbccddeeff0011);
290+
291+
let input: u64 = 0xffffffffffffffff;
292+
let value = Value::<()>::from(input);
293+
let mut out: i128 = 0;
294+
unsafe {
295+
value.write_value_to(&mut out as *mut i128);
296+
}
297+
assert_eq!(out, 0xffffffffffffffff);
298+
}
299+
}

0 commit comments

Comments
 (0)