diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2025-01-08 10:13:00 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2025-01-10 19:48:50 +0200 |
| commit | 3ffa6702cdb39c21a26ddc434f46d17d0104cb7b (patch) | |
| tree | b0d8e4dcbb967d90b90a338eb0cb50fc0f10c518 /log_db/src/record.rs | |
| parent | f19c7e6a41768e73a0f727deb22d65f1646a0777 (diff) | |
Fix compaction issue where get of valid logkey produced unset metadata row (len = 0)
Diffstat (limited to 'log_db/src/record.rs')
| -rw-r--r-- | log_db/src/record.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/log_db/src/record.rs b/log_db/src/record.rs index 61939e1..4a30902 100644 --- a/log_db/src/record.rs +++ b/log_db/src/record.rs @@ -120,3 +120,27 @@ pub trait Recordable { /// Convert a vector of database values into the data structure implementing the `Recordable` trait. fn from_record(record: Vec<Value>) -> Self; } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_record_serialize_deserialize() { + let record = Record { + values: vec![ + Value::Int(1), + Value::String("hello".to_string()), + Value::Bytes(vec![0, 1, 2, 3]), + ], + tombstone: true, + }; + + let serialized = record.serialize(); + let deserialized = Record::deserialize(&serialized); + let reserialized = deserialized.serialize(); + + assert_eq!(serialized.len(), reserialized.len()); + assert_eq!(record.values, deserialized.values); + } +} |
