Skip to content

Commit 4ac9ed2

Browse files
committed
Add some basic sanity tests for feature flags
1 parent a3ddb9f commit 4ac9ed2

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

lightning/src/ln/features.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,3 +293,41 @@ impl<R: ::std::io::Read, T: sealed::Context> Readable<R> for Features<T> {
293293
})
294294
}
295295
}
296+
297+
#[cfg(test)]
298+
mod tests {
299+
use super::{ChannelFeatures, InitFeatures, NodeFeatures};
300+
301+
#[test]
302+
fn sanity_test_our_features() {
303+
assert!(!ChannelFeatures::supported().requires_unknown_bits());
304+
assert!(!ChannelFeatures::supported().supports_unknown_bits());
305+
assert!(!InitFeatures::supported().requires_unknown_bits());
306+
assert!(!InitFeatures::supported().supports_unknown_bits());
307+
assert!(!NodeFeatures::supported().requires_unknown_bits());
308+
assert!(!NodeFeatures::supported().supports_unknown_bits());
309+
310+
assert!(InitFeatures::supported().supports_upfront_shutdown_script());
311+
assert!(NodeFeatures::supported().supports_upfront_shutdown_script());
312+
313+
assert!(InitFeatures::supported().supports_data_loss_protect());
314+
assert!(NodeFeatures::supported().supports_data_loss_protect());
315+
316+
assert!(InitFeatures::supported().supports_variable_length_onion());
317+
assert!(NodeFeatures::supported().supports_variable_length_onion());
318+
319+
let mut init_features = InitFeatures::supported();
320+
init_features.set_initial_routing_sync();
321+
assert!(!init_features.requires_unknown_bits());
322+
assert!(!init_features.supports_unknown_bits());
323+
}
324+
325+
#[test]
326+
fn sanity_test_unkown_bits_testing() {
327+
let mut features = ChannelFeatures::supported();
328+
features.set_require_unknown_bits();
329+
assert!(features.requires_unknown_bits());
330+
features.clear_require_unknown_bits();
331+
assert!(!features.requires_unknown_bits());
332+
}
333+
}

0 commit comments

Comments
 (0)