2025-01-15 06:12:30 +00:00
|
|
|
#![allow(unexpected_cfgs)]
|
2024-08-30 03:44:34 +00:00
|
|
|
use fuzz::{kv_minify_simple, test_mem_kv_fuzzer, KVAction::*};
|
|
|
|
|
|
|
|
#[ctor::ctor]
|
|
|
|
fn init() {
|
|
|
|
dev_utils::setup_test_log();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn add_same_key_twice() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![254],
|
|
|
|
},
|
|
|
|
Flush,
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn add_and_remove() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![238],
|
|
|
|
},
|
|
|
|
Remove(0),
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn add_flush_remove() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Flush,
|
|
|
|
Remove(3791655167),
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn export_and_import() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
ExportAndImport,
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn add_flush_add_scan() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Flush,
|
|
|
|
Add {
|
|
|
|
key: vec![128],
|
|
|
|
value: vec![252, 169],
|
|
|
|
},
|
|
|
|
Scan {
|
|
|
|
start: 12249507989402000797,
|
|
|
|
end: 18231419743747221929,
|
|
|
|
start_include: true,
|
|
|
|
end_include: true,
|
|
|
|
},
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn add_some() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
|
|
|
Add {
|
|
|
|
key: vec![255, 255, 255, 255, 63],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Add {
|
|
|
|
key: vec![255, 3],
|
|
|
|
value: vec![255],
|
|
|
|
},
|
|
|
|
Add {
|
|
|
|
key: vec![255],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Flush,
|
|
|
|
Scan {
|
|
|
|
start: 18446744073709551615,
|
|
|
|
end: 18446744073709551615,
|
|
|
|
start_include: true,
|
|
|
|
end_include: true,
|
|
|
|
},
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn merge_import() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
|
|
|
Add {
|
|
|
|
key: vec![205, 197, 255, 12],
|
|
|
|
value: vec![0, 0, 9],
|
|
|
|
},
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Flush,
|
|
|
|
Add {
|
|
|
|
key: vec![57],
|
|
|
|
value: vec![209, 3, 255, 174, 0, 255],
|
|
|
|
},
|
|
|
|
Add {
|
|
|
|
key: vec![41],
|
|
|
|
value: vec![209, 0, 41, 63, 205],
|
|
|
|
},
|
|
|
|
Add {
|
|
|
|
key: vec![0, 0],
|
|
|
|
value: vec![1],
|
|
|
|
},
|
|
|
|
ExportAndImport,
|
|
|
|
Flush,
|
|
|
|
ExportAndImport,
|
|
|
|
Remove(14829789716734785489),
|
|
|
|
Remove(13191005920967349589),
|
|
|
|
ExportAndImport,
|
|
|
|
ExportAndImport,
|
|
|
|
Get(13238251090391746632),
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn scan_empty() {
|
|
|
|
test_mem_kv_fuzzer(&mut [
|
2025-01-15 06:12:30 +00:00
|
|
|
Add {
|
|
|
|
key: vec![0, 255],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Add {
|
|
|
|
key: vec![],
|
|
|
|
value: vec![],
|
|
|
|
},
|
|
|
|
Scan {
|
|
|
|
start: 129,
|
|
|
|
end: 0,
|
|
|
|
start_include: false,
|
|
|
|
end_include: false,
|
|
|
|
},
|
|
|
|
])
|
2024-08-30 03:44:34 +00:00
|
|
|
}
|
|
|
|
#[test]
|
|
|
|
fn minify() {
|
|
|
|
kv_minify_simple(test_mem_kv_fuzzer, vec![])
|
|
|
|
}
|