that reduced coverage again..

This commit is contained in:
2023-12-06 01:12:33 +01:00
parent 5b7c500ee7
commit c21ddf3cf0
6 changed files with 120 additions and 53 deletions

View File

@ -355,9 +355,20 @@ struct FilestoreTlvBase<'first_name, 'second_name> {
pub second_name: Option<Lv<'second_name>>,
}
impl FilestoreTlvBase<'_, '_> {
fn base_len_value(&self) -> usize {
let mut len = 1 + self.first_name.len_full();
if let Some(second_name) = self.second_name {
len += second_name.len_full();
}
len
}
}
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct FilestoreRequestTlv<'first_name, 'second_name> {
#[cfg_attr(feature = "serde", serde(borrow))]
base: FilestoreTlvBase<'first_name, 'second_name>,
}
@ -467,11 +478,7 @@ impl<'first_name, 'second_name> FilestoreRequestTlv<'first_name, 'second_name> {
}
pub fn len_value(&self) -> usize {
let mut len = 1 + self.base.first_name.len_full();
if let Some(second_name) = self.base.second_name {
len += second_name.len_full();
}
len
self.base.base_len_value()
}
pub fn len_full(&self) -> usize {
@ -554,8 +561,10 @@ impl GenericTlv for FilestoreRequestTlv<'_, '_> {
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct FilestoreResponseTlv<'first_name, 'second_name, 'fs_msg> {
#[cfg_attr(feature = "serde", serde(borrow))]
base: FilestoreTlvBase<'first_name, 'second_name>,
status_code: u8,
#[cfg_attr(feature = "serde", serde(borrow))]
filestore_message: Lv<'fs_msg>,
}
@ -634,12 +643,7 @@ impl<'first_name, 'second_name, 'fs_msg> FilestoreResponseTlv<'first_name, 'seco
}
pub fn len_value(&self) -> usize {
let mut len = 1 + self.base.first_name.len_full();
if let Some(second_name) = self.base.second_name {
len += second_name.len_full();
}
len += self.filestore_message.len_full();
len
self.base.base_len_value() + self.filestore_message.len_full()
}
pub fn len_full(&self) -> usize {
@ -948,6 +952,7 @@ mod tests {
assert!(tlv.is_ok());
let tlv = tlv.unwrap();
assert_eq!(tlv.tlv_type_field(), TlvTypeField::Custom(3));
assert!(!tlv.is_standard_tlv());
assert_eq!(tlv.value().len(), 1);
assert_eq!(tlv.len_full(), 3);
}
@ -1006,7 +1011,12 @@ mod tests {
fs_request.len_value(),
1 + first_name.len_full() + second_name.len_full()
);
assert_eq!(
fs_request.tlv_type_field(),
TlvTypeField::Standard(TlvType::FilestoreRequest)
);
assert_eq!(fs_request.len_full(), fs_request.len_value() + 2);
assert_eq!(fs_request.len_written(), fs_request.len_full());
assert_eq!(fs_request.action_code(), action_code);
assert_eq!(fs_request.first_name(), first_name);
assert!(fs_request.second_name().is_some());
@ -1138,7 +1148,7 @@ mod tests {
}
#[test]
fn test_fs_response_state() {
fn test_fs_response_state_one_path() {
let lv_0 = Lv::new_from_str(TLV_TEST_STR_0).unwrap();
let response = FilestoreResponseTlv::new_no_filestore_message(
FilestoreActionCode::CreateFile,
@ -1148,9 +1158,31 @@ mod tests {
)
.expect("creating response failed");
assert_eq!(response.status_code(), 0b0001);
assert_eq!(response.action_code(), FilestoreActionCode::CreateFile);
assert_eq!(response.first_name(), lv_0);
assert!(response.second_name().is_none());
}
#[test]
fn test_fs_response_state_two_paths() {
let lv_0 = Lv::new_from_str(TLV_TEST_STR_0).unwrap();
let lv_1 = Lv::new_from_str(TLV_TEST_STR_1).unwrap();
let response = FilestoreResponseTlv::new_no_filestore_message(
FilestoreActionCode::RenameFile,
0b0001,
lv_0,
Some(lv_1),
)
.expect("creating response failed");
assert_eq!(response.status_code(), 0b0001);
assert_eq!(response.action_code(), FilestoreActionCode::RenameFile);
assert_eq!(response.first_name(), lv_0);
assert!(response.second_name().is_some());
assert!(response.second_name().unwrap() == lv_1);
assert_eq!(
response.len_full(),
2 + 1 + lv_0.len_full() + lv_1.len_full() + 1
);
}
#[test]
fn test_fs_response_serialization() {