MCPcopy Create free account
hub / github.com/KentBeck/BPlusTree3 / fragmentation_attack

Function fragmentation_attack

rust/tests/test_utils.rs:258–273  ·  view source on GitHub ↗

Standard fragmentation attack pattern

(tree: &mut BPlusTreeMap<i32, String>, base_key: i32)

Source from the content-addressed store, hash-verified

256
257/// Standard fragmentation attack pattern
258pub 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
276pub fn deep_tree_attack(tree: &mut BPlusTreeMap<i32, i32>, capacity: usize) {

Callers 1

Calls 2

insertMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected