fn transmute_sanity()

in reverie-ptrace/src/stack.rs [177:226]


    fn transmute_sanity() {
        assert_eq!(unsafe { transmute_u64s(1usize) }, vec![1]);
        assert_eq!(unsafe { transmute_u64s(1u8) }, vec![1]);
        assert_eq!(unsafe { transmute_u64s(0x12u16) }, vec![0x12]);
        assert_eq!(unsafe { transmute_u64s(0x1234u32) }, vec![0x1234]);
        assert_eq!(unsafe { transmute_u64s(0x12345678i32) }, vec![0x12345678]);

        let arr: [u8; 1] = [0x11];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x11]);

        let arr: [u8; 2] = [0x11, 0x22];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x2211]);

        let arr: [u8; 3] = [0x11, 0x22, 0x33];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x332211]);

        let arr: [u8; 4] = [0x11, 0x22, 0x33, 0x44];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x44332211]);

        let arr: [u8; 5] = [0x11, 0x22, 0x33, 0x44, 0x55];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x5544332211]);

        let arr: [u8; 6] = [0x11, 0x22, 0x33, 0x44, 0x55, 0x66];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x665544332211]);

        let arr: [u8; 7] = [0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x0077665544332211u64]);

        let arr: [u8; 8] = [0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88];
        assert_eq!(unsafe { transmute_u64s(arr) }, vec![0x8877665544332211]);

        let arr: [u8; 9] = [0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99];
        assert_eq!(
            unsafe { transmute_u64s(arr) },
            vec![0x8877665544332211, 0x99]
        );

        let arr: [u8; 10] = [0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa];
        assert_eq!(
            unsafe { transmute_u64s(arr) },
            vec![0x8877665544332211, 0xaa99]
        );

        let tp: libc::timespec = libc::timespec {
            tv_sec: 0x12,
            tv_nsec: 0x3456789a,
        };

        assert_eq!(unsafe { transmute_u64s(tp) }, vec![0x12, 0x3456789a]);
    }