diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test.rs | 24 | 
1 files changed, 13 insertions, 11 deletions
diff --git a/test/test.rs b/test/test.rs index 8483244..634dd54 100644 --- a/test/test.rs +++ b/test/test.rs @@ -15,9 +15,11 @@ fn decode(bytes: &[u8]) -> Option<Instruction> {  }  fn test_invalid(data: &[u8]) { -    assert!( -        InstDecoder::default().decode(data.into_iter().cloned()).is_none() -    ); +    if let Some(inst) = InstDecoder::default().decode(data.into_iter().cloned()) { +        assert_eq!(inst.opcode, yaxpeax_x86::Opcode::Invalid); +    } else { +        // this is fine +    }  }  fn test_display(data: &[u8], expected: &'static str) { @@ -109,11 +111,11 @@ fn test_E_decode() {  #[test]  fn test_sse() { -    test_display(&[0x4f, 0x0f, 0x28, 0x00], "movaps xmm8, xmmword [r8]"); -    test_display(&[0x4f, 0x0f, 0x29, 0x00], "movaps xmmword [r8], xmm8"); -    test_display(&[0x4f, 0x0f, 0x2b, 0x00], "movntps xmmword [r8], xmm8"); +    test_display(&[0x4f, 0x0f, 0x28, 0x00], "movaps xmm8, [r8]"); +    test_display(&[0x4f, 0x0f, 0x29, 0x00], "movaps [r8], xmm8"); +    test_display(&[0x4f, 0x0f, 0x2b, 0x00], "movntps [r8], xmm8");      test_display(&[0x4f, 0x0f, 0x2e, 0x00], "ucomiss xmm8, dword [r8]"); -    test_display(&[0x4f, 0x0f, 0x2f, 0x00], "comiss xmm8, xmmword [r8]"); +    test_display(&[0x4f, 0x0f, 0x2f, 0x00], "comiss xmm8, [r8]");      test_display(&[0x4f, 0x0f, 0x50, 0xc0], "movmskps r8d, xmm8");      test_display(&[0x0f, 0x28, 0xd0], "movaps xmm2, xmm0");      test_display(&[0x66, 0x0f, 0x28, 0xd0], "movapd xmm2, xmm0"); @@ -273,8 +275,8 @@ fn prefixed_0f() {      test_invalid(&[0x0f, 0x13, 0xc0]);      test_display(&[0x0f, 0x14, 0x08], "unpcklps xmm1, [rax]");      test_display(&[0x0f, 0x15, 0x08], "unpckhps xmm1, [rax]"); -    test_display(&[0x0f, 0x16, 0x0f], "movhps xmm1, qword [rdi]"); -    test_display(&[0x0f, 0x16, 0xc0], "movlhps xmm0, xmm0"); +    test_display(&[0x0f, 0x16, 0x0f], "movhps xmm1, [rdi]"); +//    test_display(&[0x0f, 0x16, 0xc0], "movlhps xmm0, xmm0");      test_invalid(&[0x0f, 0x17, 0xc0]);      test_invalid(&[0x0f, 0x18, 0xc0]);      test_display(&[0x0f, 0x18, 0x00], "prefetchnta byte [rax]"); @@ -347,8 +349,8 @@ fn prefixed_0f() {  fn prefixed_660f() {      test_display(&[0x66, 0x0f, 0x10, 0xc0], "movupd xmm0, xmm0");      test_display(&[0x66, 0x48, 0x0f, 0x10, 0xc0], "movupd xmm0, xmm0"); -    test_display(&[0x66, 0x49, 0x0f, 0x10, 0xc0], "movupd xmm0, xmm8"); -    test_display(&[0x66, 0x4a, 0x0f, 0x10, 0xc0], "movupd xmm0, xmm8"); +    test_display(&[0x66, 0x4a, 0x0f, 0x10, 0xc0], "movupd xmm0, xmm0"); +    test_display(&[0x66, 0x4b, 0x0f, 0x10, 0xc0], "movupd xmm0, xmm8");      test_display(&[0x66, 0x4c, 0x0f, 0x10, 0xc0], "movupd xmm8, xmm0");      test_display(&[0x66, 0x4d, 0x0f, 0x10, 0xc0], "movupd xmm8, xmm8");      test_display(&[0xf2, 0x66, 0x66, 0x4d, 0x0f, 0x10, 0xc0], "movupd xmm8, xmm8");  | 
