| 7 | |
| 8 | #[test] |
| 9 | fn test_binary_writer_seek() { |
| 10 | let _session = Session::new().expect("Failed to initialize session"); |
| 11 | let out_dir = env!("OUT_DIR").parse::<PathBuf>().unwrap(); |
| 12 | let view = binaryninja::load(out_dir.join("atox.obj")).expect("Failed to create view"); |
| 13 | let mut writer = BinaryWriter::new(&view); |
| 14 | let end_offset = view.original_image_base() + view.len(); |
| 15 | |
| 16 | // Test seeking to a specific position |
| 17 | writer |
| 18 | .seek(SeekFrom::Start(0)) |
| 19 | .expect("Failed to seek to start"); |
| 20 | assert_eq!(writer.offset(), 0, "Writer failed to seek to the start"); |
| 21 | |
| 22 | writer |
| 23 | .seek(SeekFrom::End(0)) |
| 24 | .expect("Failed to seek to end"); |
| 25 | assert_eq!( |
| 26 | writer.offset(), |
| 27 | end_offset, |
| 28 | "Writer failed to seek to the end" |
| 29 | ); |
| 30 | |
| 31 | // Test relative seeking |
| 32 | writer |
| 33 | .seek(SeekFrom::Start(10)) |
| 34 | .expect("Failed to seek to position 10"); |
| 35 | assert_eq!(writer.offset(), 10, "Writer failed to seek to position 10"); |
| 36 | |
| 37 | writer |
| 38 | .seek(SeekFrom::Current(-5)) |
| 39 | .expect("Failed to perform relative seek"); |
| 40 | assert_eq!( |
| 41 | writer.offset(), |
| 42 | 5, |
| 43 | "Writer failed to perform relative seek correctly" |
| 44 | ); |
| 45 | } |
| 46 | |
| 47 | #[test] |
| 48 | fn test_binary_writer_write() { |