Skip to content

Commit e7620d1

Browse files
committed
Add some basic sanity tests for feature flags
1 parent b27a6c6 commit e7620d1

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

lightning/src/ln/features.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,3 +283,38 @@ impl<R: ::std::io::Read, T: sealed::Context> Readable<R> for Features<T> {
283283
})
284284
}
285285
}
286+
287+
#[cfg(test)]
288+
mod tests {
289+
use super::{ChannelFeatures, InitFeatures, NodeFeatures};
290+
291+
#[test]
292+
fn sanity_test_our_features() {
293+
assert!(!ChannelFeatures::our_features().requires_unknown_bits());
294+
assert!(!ChannelFeatures::our_features().supports_unknown_bits());
295+
assert!(!InitFeatures::our_features().requires_unknown_bits());
296+
assert!(!InitFeatures::our_features().supports_unknown_bits());
297+
assert!(!NodeFeatures::our_features().requires_unknown_bits());
298+
assert!(!NodeFeatures::our_features().supports_unknown_bits());
299+
300+
assert!(InitFeatures::our_features().supports_upfront_shutdown_script());
301+
assert!(NodeFeatures::our_features().supports_upfront_shutdown_script());
302+
303+
assert!(InitFeatures::our_features().supports_data_loss_protect());
304+
assert!(NodeFeatures::our_features().supports_data_loss_protect());
305+
306+
let mut init_features = InitFeatures::our_features();
307+
init_features.set_initial_routing_sync();
308+
assert!(!init_features.requires_unknown_bits());
309+
assert!(!init_features.supports_unknown_bits());
310+
}
311+
312+
#[test]
313+
fn sanity_test_unkown_bits_testing() {
314+
let mut features = ChannelFeatures::our_features();
315+
features.set_require_unknown_bits();
316+
assert!(features.requires_unknown_bits());
317+
features.clear_require_unknown_bits();
318+
assert!(!features.requires_unknown_bits());
319+
}
320+
}

0 commit comments

Comments
 (0)