fix sleb serializer

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2024-02-06 19:37:12 +01:00
parent e4532f9e3c
commit fcfe2dc6e9
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
5 changed files with 70 additions and 21 deletions

View file

@ -92,3 +92,42 @@ impl Serializable for DebugInfoItem {
+ self.bytecode.size(DbgBytecode::EndSequence)
}
}
#[cfg(test)]
mod test {
use super::DbgBytecode::*;
use super::*;
#[test]
fn test_debug_reserialize() {
let debug = DebugInfoItem {
line_start: Uleb128(2902),
parameter_names: vec![],
bytecode: vec![
SpecialOpcode(14),
AdvanceLine {
line_diff: Sleb128(-1551),
},
AdvancePC {
addr_diff: Uleb128(51),
},
SpecialOpcode(14),
],
};
assert_eq!(
debug,
DebugInfoItem::deserialize_from_slice(&debug.serialize_to_vec().unwrap()).unwrap()
);
}
#[test]
fn test_advance_line_reserialize() {
let advance_line = AdvanceLine {
line_diff: Sleb128(-1551),
};
assert_eq!(
advance_line,
DbgBytecode::deserialize_from_slice(&advance_line.serialize_to_vec().unwrap()).unwrap()
);
}
}