Skip to content

Commit 449c8f0

Browse files
committed
Add some basic sanity tests for feature flags
1 parent cf9fea5 commit 449c8f0

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
@@ -291,3 +291,38 @@ impl<R: ::std::io::Read, T: sealed::Context> Readable<R> for Features<T> {
291291
})
292292
}
293293
}
294+
295+
#[cfg(test)]
296+
mod tests {
297+
use super::{ChannelFeatures, InitFeatures, NodeFeatures};
298+
299+
#[test]
300+
fn sanity_test_our_features() {
301+
assert!(!ChannelFeatures::our_features().requires_unknown_bits());
302+
assert!(!ChannelFeatures::our_features().supports_unknown_bits());
303+
assert!(!InitFeatures::our_features().requires_unknown_bits());
304+
assert!(!InitFeatures::our_features().supports_unknown_bits());
305+
assert!(!NodeFeatures::our_features().requires_unknown_bits());
306+
assert!(!NodeFeatures::our_features().supports_unknown_bits());
307+
308+
assert!(InitFeatures::our_features().supports_upfront_shutdown_script());
309+
assert!(NodeFeatures::our_features().supports_upfront_shutdown_script());
310+
311+
assert!(InitFeatures::our_features().supports_data_loss_protect());
312+
assert!(NodeFeatures::our_features().supports_data_loss_protect());
313+
314+
let mut init_features = InitFeatures::our_features();
315+
init_features.set_initial_routing_sync();
316+
assert!(!init_features.requires_unknown_bits());
317+
assert!(!init_features.supports_unknown_bits());
318+
}
319+
320+
#[test]
321+
fn sanity_test_unkown_bits_testing() {
322+
let mut features = ChannelFeatures::our_features();
323+
features.set_require_unknown_bits();
324+
assert!(features.requires_unknown_bits());
325+
features.clear_require_unknown_bits();
326+
assert!(!features.requires_unknown_bits());
327+
}
328+
}

0 commit comments

Comments
 (0)