diff options
author | iximeow <me@iximeow.net> | 2022-01-02 13:27:48 -0800 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2022-01-02 13:27:48 -0800 |
commit | 0bcea6031e3d0b48acb15f6a7dfdab670ec8fcfc (patch) | |
tree | 3b867da36e68d296ac6c87bb8d6f6e1c8b1f9fa8 /tests/test.rs | |
parent | 514eae8d01163f9550046054f2d3accc00df972c (diff) |
get test situation in order
Diffstat (limited to 'tests/test.rs')
-rw-r--r-- | tests/test.rs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/test.rs b/tests/test.rs new file mode 100644 index 0000000..67893db --- /dev/null +++ b/tests/test.rs @@ -0,0 +1,49 @@ +// #![feature(test)] +// +// extern crate test; + +mod armv7; +mod armv8; + +use yaxpeax_arch::{Arch, Decoder, U8Reader}; + +#[test] +fn test_armv7_does_not_panic() { + let armv7 = <yaxpeax_arm::armv7::ARMv7 as Arch>::Decoder::default(); + + for i in 0..=u32::MAX { + let bytes = i.to_le_bytes(); + let res = armv7.decode(&mut U8Reader::new(&bytes)); + if let Ok(instr) = res { + let s = instr.to_string(); + drop(s); + } + } +} +#[test] +fn test_armv7_thumb_does_not_panic() { + let mut armv7_t = <yaxpeax_arm::armv7::ARMv7 as Arch>::Decoder::default(); + armv7_t.set_thumb_mode(true); + + for i in 0..=u32::MAX { + let bytes = i.to_le_bytes(); + let res = armv7_t.decode(&mut U8Reader::new(&bytes)); + if let Ok(instr) = res { + let s = instr.to_string(); + drop(s); + } + } +} +#[test] +fn test_armv8_does_not_panic() { + let armv8 = <yaxpeax_arm::armv8::a64::ARMv8 as Arch>::Decoder::default(); + + for i in 0..=u32::MAX { + let bytes = i.to_le_bytes(); + let res = armv8.decode(&mut U8Reader::new(&bytes)); + if let Ok(instr) = res { + let s = instr.to_string(); + drop(s); + } + } +} |