Skip to content

Commit f2b53e9

Browse files
committed
Update tests to pass in rustc 1.22.0
* Downgrade the `regex` crate version to the latest which works fine in rustc 1.22.0 * Be explicit about how to match against reference since old rustc is not smart enough to handle implicit reference coercion. * use separate `find` and `map` instead of `find_map` . Since it is not supported in old rust.
1 parent 21a7cfd commit f2b53e9

File tree

6 files changed

+39
-34
lines changed

6 files changed

+39
-34
lines changed

lightning/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ features = ["bitcoinconsensus"]
2828

2929
[dev-dependencies]
3030
hex = "0.3"
31-
regex = "1.3.9"
31+
regex = "0.1.80"

lightning/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
extern crate bitcoin;
2222
#[cfg(test)] extern crate hex;
23+
#[cfg(test)] extern crate regex;
2324

2425
#[macro_use]
2526
pub mod util;

lightning/src/ln/functional_test_utils.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -278,14 +278,14 @@ macro_rules! unwrap_send_err {
278278
match &$res {
279279
&Err(PaymentSendFailure::AllFailedRetrySafe(ref fails)) if $all_failed => {
280280
assert_eq!(fails.len(), 1);
281-
match &fails[0] {
281+
match fails[0] {
282282
$type => { $check },
283283
_ => panic!(),
284284
}
285285
},
286286
&Err(PaymentSendFailure::PartialFailure(ref fails)) if !$all_failed => {
287287
assert_eq!(fails.len(), 1);
288-
match &fails[0] {
288+
match fails[0] {
289289
Err($type) => { $check },
290290
_ => panic!(),
291291
}
@@ -972,7 +972,7 @@ pub fn route_over_limit<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_rou
972972
}
973973

974974
let (_, our_payment_hash) = get_payment_preimage_hash!(origin_node);
975-
unwrap_send_err!(origin_node.node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
975+
unwrap_send_err!(origin_node.node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
976976
assert!(err.contains("Cannot send value that would put us over the max HTLC value in flight our peer will accept")));
977977
}
978978

lightning/src/ln/functional_tests.rs

+14-12
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ use bitcoin::hashes::Hash;
4343
use bitcoin::secp256k1::{Secp256k1, Message};
4444
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
4545

46+
use regex;
47+
4648
use std::collections::{BTreeSet, HashMap, HashSet};
4749
use std::default::Default;
4850
use std::sync::{Arc, Mutex};
@@ -1322,7 +1324,7 @@ fn holding_cell_htlc_counting() {
13221324
{
13231325
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
13241326
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
1325-
unwrap_send_err!(nodes[1].node.send_payment(&route, payment_hash_1, &None), true, APIError::ChannelUnavailable { err },
1327+
unwrap_send_err!(nodes[1].node.send_payment(&route, payment_hash_1, &None), true, APIError::ChannelUnavailable { ref err },
13261328
assert!(err.contains("Cannot push more than their max accepted HTLCs")));
13271329
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
13281330
nodes[1].logger.assert_log_contains("lightning::ln::channelmanager".to_string(), "Cannot push more than their max accepted HTLCs".to_string(), 1);
@@ -1542,7 +1544,7 @@ fn test_basic_channel_reserve() {
15421544
match err {
15431545
PaymentSendFailure::AllFailedRetrySafe(ref fails) => {
15441546
match &fails[0] {
1545-
APIError::ChannelUnavailable{err} =>
1547+
&APIError::ChannelUnavailable{ref err} =>
15461548
assert!(err.contains("Cannot send value that would put us under local channel reserve value")),
15471549
_ => panic!("Unexpected error variant"),
15481550
}
@@ -1752,7 +1754,7 @@ fn test_chan_reserve_violation_outbound_htlc_inbound_chan() {
17521754
};
17531755

17541756
let (route, our_payment_hash, _) = get_route_and_payment_hash!(1000);
1755-
unwrap_send_err!(nodes[1].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
1757+
unwrap_send_err!(nodes[1].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
17561758
assert_eq!(err, "Cannot send value that would put them under remote channel reserve value"));
17571759
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
17581760
nodes[1].logger.assert_log("lightning::ln::channelmanager".to_string(), "Cannot send value that would put them under remote channel reserve value".to_string(), 1);
@@ -1930,7 +1932,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
19301932
{
19311933
let (route, our_payment_hash, _) = get_route_and_payment_hash!(recv_value_0 + 1);
19321934
assert!(route.paths[0].iter().rev().skip(1).all(|h| h.fee_msat == feemsat));
1933-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
1935+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
19341936
assert!(err.contains("Cannot send value that would put us over the max HTLC value in flight our peer will accept")));
19351937
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
19361938
nodes[0].logger.assert_log_contains("lightning::ln::channelmanager".to_string(), "Cannot send value that would put us over the max HTLC value in flight our peer will accept".to_string(), 1);
@@ -1994,7 +1996,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
19941996
let recv_value_2 = stat01.value_to_self_msat - amt_msat_1 - stat01.channel_reserve_msat - total_fee_msat - commit_tx_fee_2_htlcs;
19951997
{
19961998
let (route, our_payment_hash, _) = get_route_and_payment_hash!(recv_value_2 + 1);
1997-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
1999+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
19982000
assert!(err.contains("Cannot send value that would put us under local channel reserve value")));
19992001
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
20002002
}
@@ -2020,7 +2022,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
20202022
// test with outbound holding cell amount > 0
20212023
{
20222024
let (route, our_payment_hash, _) = get_route_and_payment_hash!(recv_value_22+1);
2023-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
2025+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
20242026
assert!(err.contains("Cannot send value that would put us under local channel reserve value")));
20252027
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
20262028
nodes[0].logger.assert_log_contains("lightning::ln::channelmanager".to_string(), "Cannot send value that would put us under local channel reserve value".to_string(), 2);
@@ -2107,7 +2109,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
21072109
match err {
21082110
PaymentSendFailure::AllFailedRetrySafe(ref fails) => {
21092111
match &fails[0] {
2110-
APIError::ChannelUnavailable{err} =>
2112+
&APIError::ChannelUnavailable{ref err} =>
21112113
assert!(err.contains("Cannot send value that would put us under local channel reserve value")),
21122114
_ => panic!("Unexpected error variant"),
21132115
}
@@ -6404,7 +6406,7 @@ fn test_update_add_htlc_bolt2_sender_value_below_minimum_msat() {
64046406
let mut route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
64056407
route.paths[0][0].fee_msat = 100;
64066408

6407-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
6409+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
64086410
assert!(err.contains("Cannot send less than their minimum HTLC value")));
64096411
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
64106412
nodes[0].logger.assert_log_contains("lightning::ln::channelmanager".to_string(), "Cannot send less than their minimum HTLC value".to_string(), 1);
@@ -6424,7 +6426,7 @@ fn test_update_add_htlc_bolt2_sender_zero_value_msat() {
64246426
let logger = test_utils::TestLogger::new();
64256427
let mut route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
64266428
route.paths[0][0].fee_msat = 0;
6427-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
6429+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
64286430
assert_eq!(err, "Cannot send 0-msat HTLC"));
64296431

64306432
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
@@ -6470,7 +6472,7 @@ fn test_update_add_htlc_bolt2_sender_cltv_expiry_too_high() {
64706472

64716473
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
64726474
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000000, 500000001, &logger).unwrap();
6473-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::RouteError { err },
6475+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::RouteError { ref err },
64746476
assert_eq!(err, &"Channel CLTV overflowed?"));
64756477
}
64766478

@@ -6514,7 +6516,7 @@ fn test_update_add_htlc_bolt2_sender_exceed_max_htlc_num_and_htlc_id_increment()
65146516
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
65156517
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
65166518
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
6517-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
6519+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
65186520
assert!(err.contains("Cannot push more than their max accepted HTLCs")));
65196521

65206522
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
@@ -6538,7 +6540,7 @@ fn test_update_add_htlc_bolt2_sender_exceed_max_htlc_value_in_flight() {
65386540
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
65396541
let logger = test_utils::TestLogger::new();
65406542
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], max_in_flight+1, TEST_FINAL_CLTV, &logger).unwrap();
6541-
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
6543+
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { ref err },
65426544
assert!(err.contains("Cannot send value that would put us over the max HTLC value in flight our peer will accept")));
65436545

65446546
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());

lightning/src/routing/router.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,7 @@ mod tests {
881881
assert_eq!(route.paths[0][0].fee_msat, 200);
882882
assert_eq!(route.paths[0][0].cltv_expiry_delta, (13 << 8) | 1);
883883
assert_eq!(route.paths[0][0].node_features.le_flags(), &vec![0b11]); // it should also override our view of their features
884-
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::new()); // No feature flags will meet the relevant-to-channel conversion
884+
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::<u8>::new()); // No feature flags will meet the relevant-to-channel conversion
885885

886886
assert_eq!(route.paths[0][1].pubkey, node3);
887887
assert_eq!(route.paths[0][1].short_channel_id, 13);
@@ -945,7 +945,7 @@ mod tests {
945945
assert_eq!(route.paths[0][0].fee_msat, 200);
946946
assert_eq!(route.paths[0][0].cltv_expiry_delta, (13 << 8) | 1);
947947
assert_eq!(route.paths[0][0].node_features.le_flags(), &vec![0b11]); // it should also override our view of their features
948-
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::new()); // No feature flags will meet the relevant-to-channel conversion
948+
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::<u8>::new()); // No feature flags will meet the relevant-to-channel conversion
949949

950950
assert_eq!(route.paths[0][1].pubkey, node3);
951951
assert_eq!(route.paths[0][1].short_channel_id, 13);
@@ -1008,7 +1008,7 @@ mod tests {
10081008
assert_eq!(route.paths[0][0].fee_msat, 200);
10091009
assert_eq!(route.paths[0][0].cltv_expiry_delta, (13 << 8) | 1);
10101010
assert_eq!(route.paths[0][0].node_features.le_flags(), &vec![0b11]);
1011-
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::new()); // No feature flags will meet the relevant-to-channel conversion
1011+
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::<u8>::new()); // No feature flags will meet the relevant-to-channel conversion
10121012

10131013
assert_eq!(route.paths[0][1].pubkey, node3);
10141014
assert_eq!(route.paths[0][1].short_channel_id, 13);
@@ -1082,8 +1082,8 @@ mod tests {
10821082
assert_eq!(route.paths[0][4].short_channel_id, 8);
10831083
assert_eq!(route.paths[0][4].fee_msat, 100);
10841084
assert_eq!(route.paths[0][4].cltv_expiry_delta, 42);
1085-
assert_eq!(route.paths[0][4].node_features.le_flags(), &Vec::new()); // We dont pass flags in from invoices yet
1086-
assert_eq!(route.paths[0][4].channel_features.le_flags(), &Vec::new()); // We can't learn any flags from invoices, sadly
1085+
assert_eq!(route.paths[0][4].node_features.le_flags(), &Vec::<u8>::new()); // We dont pass flags in from invoices yet
1086+
assert_eq!(route.paths[0][4].channel_features.le_flags(), &Vec::<u8>::new()); // We can't learn any flags from invoices, sadly
10871087

10881088
// Simple test with outbound channel to 4 to test that last_hops and first_hops connect
10891089
let our_chans = vec![channelmanager::ChannelDetails {
@@ -1105,14 +1105,14 @@ mod tests {
11051105
assert_eq!(route.paths[0][0].fee_msat, 0);
11061106
assert_eq!(route.paths[0][0].cltv_expiry_delta, (8 << 8) | 1);
11071107
assert_eq!(route.paths[0][0].node_features.le_flags(), &vec![0b11]);
1108-
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::new()); // No feature flags will meet the relevant-to-channel conversion
1108+
assert_eq!(route.paths[0][0].channel_features.le_flags(), &Vec::<u8>::new()); // No feature flags will meet the relevant-to-channel conversion
11091109

11101110
assert_eq!(route.paths[0][1].pubkey, node7);
11111111
assert_eq!(route.paths[0][1].short_channel_id, 8);
11121112
assert_eq!(route.paths[0][1].fee_msat, 100);
11131113
assert_eq!(route.paths[0][1].cltv_expiry_delta, 42);
1114-
assert_eq!(route.paths[0][1].node_features.le_flags(), &Vec::new()); // We dont pass flags in from invoices yet
1115-
assert_eq!(route.paths[0][1].channel_features.le_flags(), &Vec::new()); // We can't learn any flags from invoices, sadly
1114+
assert_eq!(route.paths[0][1].node_features.le_flags(), &Vec::<u8>::new()); // We dont pass flags in from invoices yet
1115+
assert_eq!(route.paths[0][1].channel_features.le_flags(), &Vec::<u8>::new()); // We can't learn any flags from invoices, sadly
11161116

11171117
last_hops[0].fees.base_msat = 1000;
11181118

@@ -1147,8 +1147,8 @@ mod tests {
11471147
assert_eq!(route.paths[0][3].short_channel_id, 10);
11481148
assert_eq!(route.paths[0][3].fee_msat, 100);
11491149
assert_eq!(route.paths[0][3].cltv_expiry_delta, 42);
1150-
assert_eq!(route.paths[0][3].node_features.le_flags(), &Vec::new()); // We dont pass flags in from invoices yet
1151-
assert_eq!(route.paths[0][3].channel_features.le_flags(), &Vec::new()); // We can't learn any flags from invoices, sadly
1150+
assert_eq!(route.paths[0][3].node_features.le_flags(), &Vec::<u8>::new()); // We dont pass flags in from invoices yet
1151+
assert_eq!(route.paths[0][3].channel_features.le_flags(), &Vec::<u8>::new()); // We can't learn any flags from invoices, sadly
11521152

11531153
// ...but still use 8 for larger payments as 6 has a variable feerate
11541154
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node7, None, &last_hops, 2000, 42, Arc::clone(&logger)).unwrap();
@@ -1188,7 +1188,7 @@ mod tests {
11881188
assert_eq!(route.paths[0][4].short_channel_id, 8);
11891189
assert_eq!(route.paths[0][4].fee_msat, 2000);
11901190
assert_eq!(route.paths[0][4].cltv_expiry_delta, 42);
1191-
assert_eq!(route.paths[0][4].node_features.le_flags(), &Vec::new()); // We dont pass flags in from invoices yet
1192-
assert_eq!(route.paths[0][4].channel_features.le_flags(), &Vec::new()); // We can't learn any flags from invoices, sadly
1191+
assert_eq!(route.paths[0][4].node_features.le_flags(), &Vec::<u8>::new()); // We dont pass flags in from invoices yet
1192+
assert_eq!(route.paths[0][4].channel_features.le_flags(), &Vec::<u8>::new()); // We can't learn any flags from invoices, sadly
11931193
}
11941194
}

lightning/src/util/test_utils.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ use bitcoin::hash_types::{Txid, BlockHash};
2222

2323
use bitcoin::secp256k1::{SecretKey, PublicKey, Secp256k1, Signature};
2424

25+
use regex;
26+
2527
use std::time::Duration;
2628
use std::sync::Mutex;
2729
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
@@ -303,17 +305,17 @@ impl TestLogger {
303305

304306
pub fn assert_log_contains(&self, module: String, line: String, count: usize) {
305307
let log_entries = self.lines.lock().unwrap();
306-
let l = log_entries.iter().find_map(|((m, l), c)| {
307-
if m == &module && l.contains(line.as_str()) { Some(c) } else { None }
308-
});
308+
let l = log_entries.iter().find(|&(&(ref m, ref l), _c)| {
309+
m == &module && l.contains(line.as_str())
310+
}).map(|(&(ref _m, ref _l),c) | { c });
309311
assert_eq!(l.unwrap(), &count)
310312
}
311313

312314
pub fn assert_log_regex(&self, module: String, line: regex::Regex, count: usize) {
313315
let log_entries = self.lines.lock().unwrap();
314-
let l = log_entries.iter().find_map(|((m, l), c)| {
315-
if m == &module && line.is_match(l) { Some(c) } else { None }
316-
});
316+
let l = log_entries.iter().find(|&(&(ref m, ref l), _c)| {
317+
m == &module && line.is_match(&l)
318+
}).map(|(&(ref _m, ref _l),c) | { c });
317319
assert_eq!(l.unwrap(), &count)
318320
}
319321
}

0 commit comments

Comments
 (0)