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 }
44}