add some basic unit tests
This commit is contained in:
@@ -21,3 +21,6 @@ features = [
|
|||||||
"Win32_System_Diagnostics_ToolHelp",
|
"Win32_System_Diagnostics_ToolHelp",
|
||||||
"Win32_System_Diagnostics_Debug",
|
"Win32_System_Diagnostics_Debug",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
doctest = false
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user