Standard fragmentation attack pattern
(tree: &mut BPlusTreeMap<i32, String>, base_key: i32)
| 256 | |
| 257 | /// Standard fragmentation attack pattern |
| 258 | pub fn fragmentation_attack(tree: &mut BPlusTreeMap<i32, String>, base_key: i32) { |
| 259 | // Insert in a pattern that creates and frees nodes in specific order |
| 260 | for i in 0..500 { |
| 261 | tree.insert(base_key + i * 10, format!("fragmented-{}", i)); |
| 262 | } |
| 263 | |
| 264 | // Delete every other item |
| 265 | for i in (0..500).step_by(2) { |
| 266 | tree.remove(&(base_key + i * 10)); |
| 267 | } |
| 268 | |
| 269 | // Reinsert to reuse freed slots |
| 270 | for i in 0..250 { |
| 271 | tree.insert(base_key + i * 10 + 5, format!("reused-{}", i * 1000)); |
| 272 | } |
| 273 | } |
| 274 | |
| 275 | /// Deep tree creation attack pattern |
| 276 | pub fn deep_tree_attack(tree: &mut BPlusTreeMap<i32, i32>, capacity: usize) { |
no test coverage detected