add some basic unit tests

This commit is contained in:
2025-12-04 05:59:20 +00:00
parent afc6724be1
commit a22c9cd0ce
3 changed files with 33 additions and 0 deletions
+3
View File
@@ -21,3 +21,6 @@ features = [
"Win32_System_Diagnostics_ToolHelp", "Win32_System_Diagnostics_ToolHelp",
"Win32_System_Diagnostics_Debug", "Win32_System_Diagnostics_Debug",
] ]
[lib]
doctest = false
+1
View File
@@ -5,5 +5,6 @@ mod error;
/// types and methods to ease the r/w of a process's memory /// types and methods to ease the r/w of a process's memory
pub mod process; pub mod process;
mod sys; mod sys;
mod tests;
pub use error::Error; pub use error::Error;
+29
View File
@@ -0,0 +1,29 @@
#![cfg(test)]
use super::process::*;
#[test]
fn resolve_pointer_chain_empty() {
let myself = Process::find(std::process::id()).unwrap();
let result = myself.resolve_pointer_chain(&[]);
assert!(result.is_err());
}
#[test]
fn resolve_pointer_chain_single() {
let myself = Process::find(std::process::id()).unwrap();
let result = myself.resolve_pointer_chain(&[myself.base_address]);
assert_eq!(result.unwrap(), myself.base_address);
}
#[test]
fn resolve_pointer_chain_multiple() {
let myself = Process::find(std::process::id()).unwrap();
let target_value = 1337;
let target_ptr = &target_value as *const i32 as usize;
let base_ptr = &target_ptr as *const usize as usize;
let address = myself.resolve_pointer_chain(&[base_ptr, 0x0, 0x0]).unwrap();
assert_eq!(address, target_ptr);
let value = myself.read_mem::<i32>(address).unwrap();
assert_eq!(value, target_value);
}