summaryrefslogtreecommitdiff
path: root/rust/tests/binary_view.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/tests/binary_view.rs')
-rw-r--r--rust/tests/binary_view.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/rust/tests/binary_view.rs b/rust/tests/binary_view.rs
index a2407253..dbe47941 100644
--- a/rust/tests/binary_view.rs
+++ b/rust/tests/binary_view.rs
@@ -70,3 +70,25 @@ fn test_binary_saving_database() {
"test"
);
}
+
+#[test]
+fn test_binary_view_strings() {
+ let _session = Session::new().expect("Failed to initialize 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 image_base = view.original_image_base();
+ assert!(view.strings().len() > 0);
+ let str_15dc = view
+ .strings()
+ .iter()
+ .find(|s| {
+ let buffer = view
+ .read_buffer(s.start, s.length)
+ .expect("Failed to read string reference");
+ let str = buffer.to_escaped_string(false, false);
+ str.contains("Microsoft")
+ })
+ .expect("Failed to find string 'Microsoft (R) Optimizing Compiler'");
+ assert_eq!(str_15dc.start, image_base + 0x15dc);
+ assert_eq!(str_15dc.length, 33);
+}