Skip to content

Commit ff53b78

Browse files
committed
encoding/decoding tests added for BigSize
removed unnecessary debugging line using io::Cursor in place of the std one encoding/decoding tests added for BigSize
1 parent c5cc1ed commit ff53b78

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

lightning/src/util/ser.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,4 +1272,64 @@ mod tests {
12721272
hostname.write(&mut buf).unwrap();
12731273
assert_eq!(Hostname::read(&mut buf.as_slice()).unwrap().as_str(), "test");
12741274
}
1275+
1276+
#[test]
1277+
fn bigsize_decoding() {
1278+
let values = vec![0, 252, 253, 65535, 65536, 4294967295, 4294967296, 18446744073709551615];
1279+
let bytes = vec![
1280+
"00",
1281+
"fc",
1282+
"fd00fd",
1283+
"fdffff",
1284+
"fe00010000",
1285+
"feffffffff",
1286+
"ff0000000100000000",
1287+
"ffffffffffffffffff"
1288+
];
1289+
for i in 0..=7 {
1290+
let mut stream = crate::io::Cursor::new(::hex::decode(bytes[i]).unwrap());
1291+
assert_eq!(super::BigSize::read(&mut stream).unwrap().0, values[i]);
1292+
}
1293+
let err_bytes = vec![
1294+
"fd00fc",
1295+
"fe0000ffff",
1296+
"ff00000000ffffffff",
1297+
"fd00",
1298+
"feffff",
1299+
"ffffffffff",
1300+
"fd",
1301+
"fe",
1302+
"ff",
1303+
""
1304+
];
1305+
for i in 0..=9 {
1306+
let mut stream = crate::io::Cursor::new(::hex::decode(err_bytes[i]).unwrap());
1307+
if i < 3 {
1308+
assert_eq!(super::BigSize::read(&mut stream).err(), Some(crate::ln::msgs::DecodeError::InvalidValue));
1309+
}
1310+
else if i >= 3 && i < 10 {
1311+
assert_eq!(super::BigSize::read(&mut stream).err(), Some(crate::ln::msgs::DecodeError::ShortRead));
1312+
}
1313+
}
1314+
}
1315+
1316+
#[test]
1317+
fn bigsize_encoding() {
1318+
let values = vec![0, 252, 253, 65535, 65536, 4294967295, 4294967296, 18446744073709551615];
1319+
let bytes = vec![
1320+
"00",
1321+
"fc",
1322+
"fd00fd",
1323+
"fdffff",
1324+
"fe00010000",
1325+
"feffffffff",
1326+
"ff0000000100000000",
1327+
"ffffffffffffffffff"
1328+
];
1329+
for i in 0..=7 {
1330+
let mut stream = super::VecWriter(Vec::new());
1331+
super::BigSize(values[i]).write(&mut stream).unwrap();
1332+
assert_eq!(stream.0, ::hex::decode(bytes[i]).unwrap());
1333+
}
1334+
}
12751335
}

0 commit comments

Comments
 (0)