@@ -222,3 +222,78 @@ impl<T> From<ExternRef> for Value<T> {
222
222
// Self::FuncRef(val)
223
223
// }
224
224
// }
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