MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / test_binary_writer_write

Function test_binary_writer_write

rust/tests/binary_writer.rs:48–74  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

46
47#[test]
48fn test_binary_writer_write() {
49 let _session = Session::new().expect("Failed to initialize session");
50 let out_dir = env!("OUT_DIR").parse::<PathBuf>().unwrap();
51 let view = binaryninja::load(out_dir.join("atox.obj")).expect("Failed to create view");
52 let mut reader = BinaryReader::new(&view);
53 let mut writer = BinaryWriter::new(&view);
54
55 // Validate bytes are written.
56 let mut buffer = [5u8; 4];
57 let mut verify_buffer = [0u8; 4];
58 writer.write(&mut buffer).expect("Failed to write 4 bytes");
59 reader
60 .read_exact(&mut verify_buffer)
61 .expect("Failed to read 4 bytes");
62 assert_eq!(buffer, verify_buffer, "Failed to write the correct bytes");
63
64 // Test attempting to write beyond the end of the file.
65 writer
66 .seek(SeekFrom::End(0))
67 .expect("Failed to seek to end");
68 let mut eof_buffer = [0u8; 1];
69 let result = writer.write(&mut eof_buffer);
70 assert!(
71 result.is_err(),
72 "Expected an error when writing past EOF, got success instead"
73 );
74}

Callers

nothing calls this directly

Calls 5

EndFunction · 0.85
joinMethod · 0.80
loadFunction · 0.50
writeMethod · 0.45
seekMethod · 0.45

Tested by

no test coverage detected