Skip to content

Commit 7b3e9a8

Browse files
committed
Introduce noret wrappers
1 parent f0ec37e commit 7b3e9a8

File tree

1 file changed

+102
-79
lines changed

1 file changed

+102
-79
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 102 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,11 @@ fn get_payment_secret_hash(dest: &ChanMan, payment_id: &mut u8) -> Option<(Payme
422422
None
423423
}
424424

425+
#[inline]
426+
fn send_noret(source: &ChanMan, dest: &ChanMan, dest_chan_id: u64, amt: u64, payment_id: &mut u8, payment_idx: &mut u64) {
427+
send_payment(source, dest, dest_chan_id, amt, payment_id, payment_idx);
428+
}
429+
425430
#[inline]
426431
fn send_payment(source: &ChanMan, dest: &ChanMan, dest_chan_id: u64, amt: u64, payment_id: &mut u8, payment_idx: &mut u64) -> bool {
427432
let (payment_secret, payment_hash) =
@@ -456,6 +461,12 @@ fn send_payment(source: &ChanMan, dest: &ChanMan, dest_chan_id: u64, amt: u64, p
456461
true
457462
}
458463
}
464+
465+
#[inline]
466+
fn send_hop_noret(source: &ChanMan, middle: &ChanMan, middle_chan_id: u64, dest: &ChanMan, dest_chan_id: u64, amt: u64, payment_id: &mut u8, payment_idx: &mut u64) {
467+
send_hop_payment(source, middle, middle_chan_id, dest, dest_chan_id, amt, payment_id, payment_idx);
468+
}
469+
459470
#[inline]
460471
fn send_hop_payment(source: &ChanMan, middle: &ChanMan, middle_chan_id: u64, dest: &ChanMan, dest_chan_id: u64, amt: u64, payment_id: &mut u8, payment_idx: &mut u64) -> bool {
461472
let (payment_secret, payment_hash) =
@@ -980,6 +991,12 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
980991
} }
981992
}
982993

994+
macro_rules! process_msg_noret {
995+
($node: expr, $corrupt_forward: expr, $limit_events: expr) => { {
996+
process_msg_events!($node, $corrupt_forward, $limit_events);
997+
} }
998+
}
999+
9831000
macro_rules! drain_msg_events_on_disconnect {
9841001
($counterparty_id: expr) => { {
9851002
if $counterparty_id == 0 {
@@ -1091,6 +1108,12 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
10911108
} }
10921109
}
10931110

1111+
macro_rules! process_ev_noret {
1112+
($node: expr, $fail: expr) => { {
1113+
process_events!($node, $fail);
1114+
} }
1115+
}
1116+
10941117
let complete_first = |v: &mut Vec<_>| if !v.is_empty() { Some(v.remove(0)) } else { None };
10951118
let complete_second = |v: &mut Vec<_>| if v.len() > 1 { Some(v.remove(1)) } else { None };
10961119
let complete_monitor_update = |
@@ -1190,35 +1213,35 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
11901213
}
11911214
},
11921215

1193-
0x10 => { process_msg_events!(0, true, ProcessMessages::AllMessages); },
1194-
0x11 => { process_msg_events!(0, false, ProcessMessages::AllMessages); },
1195-
0x12 => { process_msg_events!(0, true, ProcessMessages::OneMessage); },
1196-
0x13 => { process_msg_events!(0, false, ProcessMessages::OneMessage); },
1197-
0x14 => { process_msg_events!(0, true, ProcessMessages::OnePendingMessage); },
1198-
0x15 => { process_msg_events!(0, false, ProcessMessages::OnePendingMessage); },
1216+
0x10 => process_msg_noret!(0, true, ProcessMessages::AllMessages),
1217+
0x11 => process_msg_noret!(0, false, ProcessMessages::AllMessages),
1218+
0x12 => process_msg_noret!(0, true, ProcessMessages::OneMessage),
1219+
0x13 => process_msg_noret!(0, false, ProcessMessages::OneMessage),
1220+
0x14 => process_msg_noret!(0, true, ProcessMessages::OnePendingMessage),
1221+
0x15 => process_msg_noret!(0, false, ProcessMessages::OnePendingMessage),
11991222

1200-
0x16 => { process_events!(0, true); },
1201-
0x17 => { process_events!(0, false); },
1223+
0x16 => process_ev_noret!(0, true),
1224+
0x17 => process_ev_noret!(0, false),
12021225

1203-
0x18 => { process_msg_events!(1, true, ProcessMessages::AllMessages); },
1204-
0x19 => { process_msg_events!(1, false, ProcessMessages::AllMessages); },
1205-
0x1a => { process_msg_events!(1, true, ProcessMessages::OneMessage); },
1206-
0x1b => { process_msg_events!(1, false, ProcessMessages::OneMessage); },
1207-
0x1c => { process_msg_events!(1, true, ProcessMessages::OnePendingMessage); },
1208-
0x1d => { process_msg_events!(1, false, ProcessMessages::OnePendingMessage); },
1226+
0x18 => process_msg_noret!(1, true, ProcessMessages::AllMessages),
1227+
0x19 => process_msg_noret!(1, false, ProcessMessages::AllMessages),
1228+
0x1a => process_msg_noret!(1, true, ProcessMessages::OneMessage),
1229+
0x1b => process_msg_noret!(1, false, ProcessMessages::OneMessage),
1230+
0x1c => process_msg_noret!(1, true, ProcessMessages::OnePendingMessage),
1231+
0x1d => process_msg_noret!(1, false, ProcessMessages::OnePendingMessage),
12091232

1210-
0x1e => { process_events!(1, true); },
1211-
0x1f => { process_events!(1, false); },
1233+
0x1e => process_ev_noret!(1, true),
1234+
0x1f => process_ev_noret!(1, false),
12121235

1213-
0x20 => { process_msg_events!(2, true, ProcessMessages::AllMessages); },
1214-
0x21 => { process_msg_events!(2, false, ProcessMessages::AllMessages); },
1215-
0x22 => { process_msg_events!(2, true, ProcessMessages::OneMessage); },
1216-
0x23 => { process_msg_events!(2, false, ProcessMessages::OneMessage); },
1217-
0x24 => { process_msg_events!(2, true, ProcessMessages::OnePendingMessage); },
1218-
0x25 => { process_msg_events!(2, false, ProcessMessages::OnePendingMessage); },
1236+
0x20 => process_msg_noret!(2, true, ProcessMessages::AllMessages),
1237+
0x21 => process_msg_noret!(2, false, ProcessMessages::AllMessages),
1238+
0x22 => process_msg_noret!(2, true, ProcessMessages::OneMessage),
1239+
0x23 => process_msg_noret!(2, false, ProcessMessages::OneMessage),
1240+
0x24 => process_msg_noret!(2, true, ProcessMessages::OnePendingMessage),
1241+
0x25 => process_msg_noret!(2, false, ProcessMessages::OnePendingMessage),
12191242

1220-
0x26 => { process_events!(2, true); },
1221-
0x27 => { process_events!(2, false); },
1243+
0x26 => process_ev_noret!(2, true),
1244+
0x27 => process_ev_noret!(2, false),
12221245

12231246
0x2c => {
12241247
if !chan_a_disconnected {
@@ -1265,61 +1288,61 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
12651288
},
12661289

12671290
// 1/10th the channel size:
1268-
0x30 => { send_payment(&nodes[0], &nodes[1], chan_a, 10_000_000, &mut p_id, &mut p_idx); },
1269-
0x31 => { send_payment(&nodes[1], &nodes[0], chan_a, 10_000_000, &mut p_id, &mut p_idx); },
1270-
0x32 => { send_payment(&nodes[1], &nodes[2], chan_b, 10_000_000, &mut p_id, &mut p_idx); },
1271-
0x33 => { send_payment(&nodes[2], &nodes[1], chan_b, 10_000_000, &mut p_id, &mut p_idx); },
1272-
0x34 => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 10_000_000, &mut p_id, &mut p_idx); },
1273-
0x35 => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 10_000_000, &mut p_id, &mut p_idx); },
1274-
1275-
0x38 => { send_payment(&nodes[0], &nodes[1], chan_a, 1_000_000, &mut p_id, &mut p_idx); },
1276-
0x39 => { send_payment(&nodes[1], &nodes[0], chan_a, 1_000_000, &mut p_id, &mut p_idx); },
1277-
0x3a => { send_payment(&nodes[1], &nodes[2], chan_b, 1_000_000, &mut p_id, &mut p_idx); },
1278-
0x3b => { send_payment(&nodes[2], &nodes[1], chan_b, 1_000_000, &mut p_id, &mut p_idx); },
1279-
0x3c => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 1_000_000, &mut p_id, &mut p_idx); },
1280-
0x3d => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 1_000_000, &mut p_id, &mut p_idx); },
1281-
1282-
0x40 => { send_payment(&nodes[0], &nodes[1], chan_a, 100_000, &mut p_id, &mut p_idx); },
1283-
0x41 => { send_payment(&nodes[1], &nodes[0], chan_a, 100_000, &mut p_id, &mut p_idx); },
1284-
0x42 => { send_payment(&nodes[1], &nodes[2], chan_b, 100_000, &mut p_id, &mut p_idx); },
1285-
0x43 => { send_payment(&nodes[2], &nodes[1], chan_b, 100_000, &mut p_id, &mut p_idx); },
1286-
0x44 => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 100_000, &mut p_id, &mut p_idx); },
1287-
0x45 => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 100_000, &mut p_id, &mut p_idx); },
1288-
1289-
0x48 => { send_payment(&nodes[0], &nodes[1], chan_a, 10_000, &mut p_id, &mut p_idx); },
1290-
0x49 => { send_payment(&nodes[1], &nodes[0], chan_a, 10_000, &mut p_id, &mut p_idx); },
1291-
0x4a => { send_payment(&nodes[1], &nodes[2], chan_b, 10_000, &mut p_id, &mut p_idx); },
1292-
0x4b => { send_payment(&nodes[2], &nodes[1], chan_b, 10_000, &mut p_id, &mut p_idx); },
1293-
0x4c => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 10_000, &mut p_id, &mut p_idx); },
1294-
0x4d => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 10_000, &mut p_id, &mut p_idx); },
1295-
1296-
0x50 => { send_payment(&nodes[0], &nodes[1], chan_a, 1_000, &mut p_id, &mut p_idx); },
1297-
0x51 => { send_payment(&nodes[1], &nodes[0], chan_a, 1_000, &mut p_id, &mut p_idx); },
1298-
0x52 => { send_payment(&nodes[1], &nodes[2], chan_b, 1_000, &mut p_id, &mut p_idx); },
1299-
0x53 => { send_payment(&nodes[2], &nodes[1], chan_b, 1_000, &mut p_id, &mut p_idx); },
1300-
0x54 => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 1_000, &mut p_id, &mut p_idx); },
1301-
0x55 => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 1_000, &mut p_id, &mut p_idx); },
1302-
1303-
0x58 => { send_payment(&nodes[0], &nodes[1], chan_a, 100, &mut p_id, &mut p_idx); },
1304-
0x59 => { send_payment(&nodes[1], &nodes[0], chan_a, 100, &mut p_id, &mut p_idx); },
1305-
0x5a => { send_payment(&nodes[1], &nodes[2], chan_b, 100, &mut p_id, &mut p_idx); },
1306-
0x5b => { send_payment(&nodes[2], &nodes[1], chan_b, 100, &mut p_id, &mut p_idx); },
1307-
0x5c => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 100, &mut p_id, &mut p_idx); },
1308-
0x5d => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 100, &mut p_id, &mut p_idx); },
1309-
1310-
0x60 => { send_payment(&nodes[0], &nodes[1], chan_a, 10, &mut p_id, &mut p_idx); },
1311-
0x61 => { send_payment(&nodes[1], &nodes[0], chan_a, 10, &mut p_id, &mut p_idx); },
1312-
0x62 => { send_payment(&nodes[1], &nodes[2], chan_b, 10, &mut p_id, &mut p_idx); },
1313-
0x63 => { send_payment(&nodes[2], &nodes[1], chan_b, 10, &mut p_id, &mut p_idx); },
1314-
0x64 => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 10, &mut p_id, &mut p_idx); },
1315-
0x65 => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 10, &mut p_id, &mut p_idx); },
1316-
1317-
0x68 => { send_payment(&nodes[0], &nodes[1], chan_a, 1, &mut p_id, &mut p_idx); },
1318-
0x69 => { send_payment(&nodes[1], &nodes[0], chan_a, 1, &mut p_id, &mut p_idx); },
1319-
0x6a => { send_payment(&nodes[1], &nodes[2], chan_b, 1, &mut p_id, &mut p_idx); },
1320-
0x6b => { send_payment(&nodes[2], &nodes[1], chan_b, 1, &mut p_id, &mut p_idx); },
1321-
0x6c => { send_hop_payment(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 1, &mut p_id, &mut p_idx); },
1322-
0x6d => { send_hop_payment(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 1, &mut p_id, &mut p_idx); },
1291+
0x30 => send_noret(&nodes[0], &nodes[1], chan_a, 10_000_000, &mut p_id, &mut p_idx),
1292+
0x31 => send_noret(&nodes[1], &nodes[0], chan_a, 10_000_000, &mut p_id, &mut p_idx),
1293+
0x32 => send_noret(&nodes[1], &nodes[2], chan_b, 10_000_000, &mut p_id, &mut p_idx),
1294+
0x33 => send_noret(&nodes[2], &nodes[1], chan_b, 10_000_000, &mut p_id, &mut p_idx),
1295+
0x34 => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 10_000_000, &mut p_id, &mut p_idx),
1296+
0x35 => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 10_000_000, &mut p_id, &mut p_idx),
1297+
1298+
0x38 => send_noret(&nodes[0], &nodes[1], chan_a, 1_000_000, &mut p_id, &mut p_idx),
1299+
0x39 => send_noret(&nodes[1], &nodes[0], chan_a, 1_000_000, &mut p_id, &mut p_idx),
1300+
0x3a => send_noret(&nodes[1], &nodes[2], chan_b, 1_000_000, &mut p_id, &mut p_idx),
1301+
0x3b => send_noret(&nodes[2], &nodes[1], chan_b, 1_000_000, &mut p_id, &mut p_idx),
1302+
0x3c => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 1_000_000, &mut p_id, &mut p_idx),
1303+
0x3d => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 1_000_000, &mut p_id, &mut p_idx),
1304+
1305+
0x40 => send_noret(&nodes[0], &nodes[1], chan_a, 100_000, &mut p_id, &mut p_idx),
1306+
0x41 => send_noret(&nodes[1], &nodes[0], chan_a, 100_000, &mut p_id, &mut p_idx),
1307+
0x42 => send_noret(&nodes[1], &nodes[2], chan_b, 100_000, &mut p_id, &mut p_idx),
1308+
0x43 => send_noret(&nodes[2], &nodes[1], chan_b, 100_000, &mut p_id, &mut p_idx),
1309+
0x44 => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 100_000, &mut p_id, &mut p_idx),
1310+
0x45 => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 100_000, &mut p_id, &mut p_idx),
1311+
1312+
0x48 => send_noret(&nodes[0], &nodes[1], chan_a, 10_000, &mut p_id, &mut p_idx),
1313+
0x49 => send_noret(&nodes[1], &nodes[0], chan_a, 10_000, &mut p_id, &mut p_idx),
1314+
0x4a => send_noret(&nodes[1], &nodes[2], chan_b, 10_000, &mut p_id, &mut p_idx),
1315+
0x4b => send_noret(&nodes[2], &nodes[1], chan_b, 10_000, &mut p_id, &mut p_idx),
1316+
0x4c => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 10_000, &mut p_id, &mut p_idx),
1317+
0x4d => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 10_000, &mut p_id, &mut p_idx),
1318+
1319+
0x50 => send_noret(&nodes[0], &nodes[1], chan_a, 1_000, &mut p_id, &mut p_idx),
1320+
0x51 => send_noret(&nodes[1], &nodes[0], chan_a, 1_000, &mut p_id, &mut p_idx),
1321+
0x52 => send_noret(&nodes[1], &nodes[2], chan_b, 1_000, &mut p_id, &mut p_idx),
1322+
0x53 => send_noret(&nodes[2], &nodes[1], chan_b, 1_000, &mut p_id, &mut p_idx),
1323+
0x54 => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 1_000, &mut p_id, &mut p_idx),
1324+
0x55 => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 1_000, &mut p_id, &mut p_idx),
1325+
1326+
0x58 => send_noret(&nodes[0], &nodes[1], chan_a, 100, &mut p_id, &mut p_idx),
1327+
0x59 => send_noret(&nodes[1], &nodes[0], chan_a, 100, &mut p_id, &mut p_idx),
1328+
0x5a => send_noret(&nodes[1], &nodes[2], chan_b, 100, &mut p_id, &mut p_idx),
1329+
0x5b => send_noret(&nodes[2], &nodes[1], chan_b, 100, &mut p_id, &mut p_idx),
1330+
0x5c => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 100, &mut p_id, &mut p_idx),
1331+
0x5d => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 100, &mut p_id, &mut p_idx),
1332+
1333+
0x60 => send_noret(&nodes[0], &nodes[1], chan_a, 10, &mut p_id, &mut p_idx),
1334+
0x61 => send_noret(&nodes[1], &nodes[0], chan_a, 10, &mut p_id, &mut p_idx),
1335+
0x62 => send_noret(&nodes[1], &nodes[2], chan_b, 10, &mut p_id, &mut p_idx),
1336+
0x63 => send_noret(&nodes[2], &nodes[1], chan_b, 10, &mut p_id, &mut p_idx),
1337+
0x64 => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 10, &mut p_id, &mut p_idx),
1338+
0x65 => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 10, &mut p_id, &mut p_idx),
1339+
1340+
0x68 => send_noret(&nodes[0], &nodes[1], chan_a, 1, &mut p_id, &mut p_idx),
1341+
0x69 => send_noret(&nodes[1], &nodes[0], chan_a, 1, &mut p_id, &mut p_idx),
1342+
0x6a => send_noret(&nodes[1], &nodes[2], chan_b, 1, &mut p_id, &mut p_idx),
1343+
0x6b => send_noret(&nodes[2], &nodes[1], chan_b, 1, &mut p_id, &mut p_idx),
1344+
0x6c => send_hop_noret(&nodes[0], &nodes[1], chan_a, &nodes[2], chan_b, 1, &mut p_id, &mut p_idx),
1345+
0x6d => send_hop_noret(&nodes[2], &nodes[1], chan_b, &nodes[0], chan_a, 1, &mut p_id, &mut p_idx),
13231346

13241347
0x80 => {
13251348
let mut max_feerate = last_htlc_clear_fee_a;

0 commit comments

Comments
 (0)