in src/kvp.rs [659:700]
fn test_encode_kvp_item_value_length() {
let key = "test_key";
let value = "A".repeat(HV_KVP_AZURE_MAX_VALUE_SIZE * 2 + 50);
let encoded_slices = encode_kvp_item(key, &value);
assert!(
!encoded_slices.is_empty(),
"Encoded slices should not be empty"
);
for (i, slice) in encoded_slices.iter().enumerate() {
assert_eq!(
slice.len(),
HV_KVP_EXCHANGE_MAX_KEY_SIZE + HV_KVP_EXCHANGE_MAX_VALUE_SIZE,
"Slice {} length is incorrect",
i
);
let (decoded_key, decoded_value) =
decode_kvp_item(slice).expect("Failed to decode slice");
println!("Slice {}: Key: {}", i, decoded_key);
println!(
"Slice {}: Value (length {}): {}",
i,
decoded_value.len(),
decoded_value
);
assert_eq!(decoded_key, key, "Key mismatch in slice {}", i);
assert!(
decoded_value.len() <= HV_KVP_AZURE_MAX_VALUE_SIZE,
"Value length exceeds limit in slice {}: {} > {}",
i,
decoded_value.len(),
HV_KVP_AZURE_MAX_VALUE_SIZE
);
}
println!("All slices adhere to Azure's max value size limit.");
}