Skip to content

Commit ba7090f

Browse files
committed
add regression tests for the two newly-found integer overflows
1 parent e1e0ba7 commit ba7090f

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

capnpc/test/test.rs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,12 +1278,25 @@ mod tests {
12781278
}
12791279
}
12801280

1281-
let root: test_all_types::Reader<'_> = message.get_root_as_reader().unwrap();
1282-
let list = root.get_u_int64_list().unwrap();
1283-
for ii in 0..(length >> step_exponent) {
1284-
let jj = ii << step_exponent;
1285-
assert_eq!(list.get(jj), jj as u64);
1281+
let mut message2 = message::Builder::new_default();
1282+
{
1283+
let root: test_all_types::Reader<'_> = message.get_root_as_reader().unwrap();
1284+
let mut root2 : test_all_types::Builder<'_> = message2.init_root();
1285+
1286+
let list = root.get_u_int64_list().unwrap();
1287+
1288+
root2.set_u_int64_list(list).unwrap();
1289+
let list2 = root2.get_u_int64_list().unwrap();
1290+
1291+
for ii in 0..(length >> step_exponent) {
1292+
let jj = ii << step_exponent;
1293+
assert_eq!(list.get(jj), jj as u64);
1294+
assert_eq!(list2.get(jj), jj as u64);
1295+
}
12861296
}
1297+
1298+
// Clear the message. (At one point this failed with an integer overflow.)
1299+
message.init_root::<test_all_types::Builder<'_>>();
12871300
}
12881301

12891302
#[test]

0 commit comments

Comments
 (0)