fix sleb serializer
This commit is contained in:
parent
e4532f9e3c
commit
fcfe2dc6e9
5 changed files with 70 additions and 21 deletions
|
|
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue