diff options
author | iximeow <me@iximeow.net> | 2025-09-29 01:35:33 +0000 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2025-09-29 01:35:33 +0000 |
commit | 5079a605a8ab1b89cb745a727dfb64b3b2e8600e (patch) | |
tree | da6e2cf63c214bd68ca45d0eba3d8772f22494a1 /tests/test.rs | |
parent | f24c3adc9fef4b2e88b64d4aba65ba9c5d1319b6 (diff) |
add display/decode fuzzing, which caught a few issues
Diffstat (limited to 'tests/test.rs')
-rw-r--r-- | tests/test.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test.rs b/tests/test.rs index 3a2cad0..b33b1c4 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -2488,3 +2488,20 @@ fn test_predication_not_allowed() { assert_eq!(format!("{inst}"), expected); assert!(!inst.well_defined()); } + +#[test] +fn test_from_fuzzer() { + let decoder = InstDecoder::default(); + + let expected = "[MFI] (p01) cmpxchg4.acq r0=[r127],r64; (p40) break.f 0x0; mov pr=0xfffffffff8400000"; + let data = [0x2c, 0x00, 0x00, 0xff, 0x11, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0a]; + let mut reader = U8Reader::new(&data[..]); + let inst = decoder.decode(&mut reader).unwrap(); + assert_eq!(format!("{inst}"), expected); + + let expected = "[MII] (p17) break.m 0x4; break.i 0x0; mov.retRESERVED.imp b0=r48,0x1ff"; + let data = [0x20, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xff, 0x07]; + let mut reader = U8Reader::new(&data[..]); + let inst = decoder.decode(&mut reader).unwrap(); + assert_eq!(format!("{inst}"), expected); +} |