Skip to main content

kittymemory/
lib.rs

1#![doc = include_str!("../README.md")]
2
3pub mod sys;
4pub mod safe;
5
6pub use safe::*;
7
8pub mod prelude {
9    pub use crate::safe::*;
10}
11
12#[cfg(test)]
13mod tests {
14    use super::*;
15    
16    #[test]
17    fn test_page_functions() {
18        let addr = 0x1234;
19        let start = safe::page_start(addr);
20        assert!(start <= addr);
21        assert_eq!(start % (sys::KM_PAGE_SIZE as usize), 0);
22        
23        let end = safe::page_end(addr);
24        assert!(end >= addr);
25    }
26    
27    #[test]
28    fn test_patch_creation() {
29        let patch = safe::Patch::with_bytes(0x1000, &[0x90, 0x90, 0x90, 0x90]);
30        assert!(patch.is_valid() || !patch.is_valid());
31    }
32    
33    #[test]
34    fn test_backup_creation() {
35        let backup = safe::Backup::create(0x1000, 16);
36        assert!(backup.is_valid() || !backup.is_valid());
37    }
38    
39    #[test]
40    fn test_validator_creation() {
41        let _validator = safe::PtrValidator::new();
42        // Validator is created successfully - the Drop impl will clean it up
43    }
44}