aboutsummaryrefslogtreecommitdiff
path: root/differential-tests/tests/capstone-differential.rs
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2024-03-17 02:44:57 +0000
committeriximeow <me@iximeow.net>2024-03-17 02:44:57 +0000
commita91c1c50a39ff68a7e73cef70829e8a5b08b4b6b (patch)
tree6fa88baec038e8cb43d4f349d627a12df51df1db /differential-tests/tests/capstone-differential.rs
parent79d220ce177833f7dd80e15e1094bbfbf4c6f8b1 (diff)
be more explicit about undefined system instructions being invalid
Diffstat (limited to 'differential-tests/tests/capstone-differential.rs')
-rw-r--r--differential-tests/tests/capstone-differential.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/differential-tests/tests/capstone-differential.rs b/differential-tests/tests/capstone-differential.rs
index 3db6fdd..cbed59f 100644
--- a/differential-tests/tests/capstone-differential.rs
+++ b/differential-tests/tests/capstone-differential.rs
@@ -368,7 +368,14 @@ fn capstone_differential() {
stats.missed_incomplete.fetch_add(1, Ordering::SeqCst);
continue;
} else {
- panic!("yax errored where capstone succeeded. cs text: '{}', bytes: {:x?}", cs_text, bytes);
+ // capstone dedodes the UNDEFINED encodings in C5.1.2 as "mrs", yax returns
+ // a decode error.
+ if cs_text.starts_with("mrs ") {
+ stats.yax_reject.fetch_add(1, Ordering::SeqCst);
+ continue;
+ } else {
+ panic!("yax errored where capstone succeeded. cs text: '{}', bytes: {:x?}", cs_text, bytes);
+ }
};
fn acceptable_match(yax_text: &str, cs_text: &str) -> bool {