summaryrefslogtreecommitdiff
path: root/rust/tests/base_detection.rs
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-02-13 16:03:31 -0500
committerMason Reed <mason@vector35.com>2025-02-13 16:03:35 -0500
commit6d267ec0604ef5036f173761d67d0fb4adc8a8fa (patch)
treea5d4a8dfdf468065fdab74613d013532b4830d72 /rust/tests/base_detection.rs
parentb366ebd28bcb44492719b487f9dd34b6da56d23f (diff)
Fix base detection in rust API failing on auto arch detection
Also added actual test for base address detection
Diffstat (limited to 'rust/tests/base_detection.rs')
-rw-r--r--rust/tests/base_detection.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/rust/tests/base_detection.rs b/rust/tests/base_detection.rs
index b5497c3c..e4594b8e 100644
--- a/rust/tests/base_detection.rs
+++ b/rust/tests/base_detection.rs
@@ -1,4 +1,4 @@
-use binaryninja::base_detection::BaseAddressDetectionSettings;
+use binaryninja::base_detection::{BaseAddressDetectionConfidence, BaseAddressDetectionSettings};
use binaryninja::binary_view::BinaryViewExt;
use binaryninja::headless::Session;
use rstest::{fixture, rstest};
@@ -11,14 +11,21 @@ fn session() -> Session {
}
#[rstest]
-fn test_failed_base_detection(_session: &Session) {
+fn test_base_detection(_session: &Session) {
let out_dir = env!("OUT_DIR").parse::<PathBuf>().unwrap();
- let view = binaryninja::load(out_dir.join("atox.obj")).expect("Failed to create view");
+ let view = binaryninja::load(out_dir.join("raw_base_detection_aarch64"))
+ .expect("Failed to create view");
let bad = view
.base_address_detection()
.expect("Failed to create base address detection");
assert!(
- !bad.detect(&BaseAddressDetectionSettings::default()),
- "Detection should fail on this view"
+ bad.detect(&BaseAddressDetectionSettings::default()),
+ "Detection should succeed on this view"
+ );
+ let result = bad.scores(10);
+ assert_eq!(result.scores.len(), 3);
+ assert_eq!(
+ result.confidence,
+ BaseAddressDetectionConfidence::HighConfidence
);
}