Skip to content

Commit a0df021

Browse files
committed
Add some basic sanity tests for feature flags
1 parent 62ee511 commit a0df021

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

0 commit comments

Comments
 (0)