Add tests for flags enable-enr-auto-update and disable-packet-filter (#2887)

Resolves https://github.com/sigp/lighthouse/issues/2602

## Issue Addressed

https://github.com/sigp/lighthouse/pull/2749#issue-1037552417
> ## Open TODO
> Add tests for boot_node flags `enable-enr-auto-update` and `disable-packet-filter`. They end up in [Discv5Config](9ed2cba6bc/boot_node/src/config.rs (L29)), which doesn't support serde (de)serialization.

## Proposed Changes

- Added tests for flags `enable-enr-auto-update` and `disable-packet-filter`
- Instead of (de)serialize Discv5Config, added the two fields copied from Discv5Config to BootNodeConfigSerialization.
This commit is contained in:
Akihito Nakano 2022-01-07 05:32:33 +00:00
parent 20941bc0f7
commit daa3da3758
2 changed files with 25 additions and 5 deletions

View File

@ -132,13 +132,15 @@ impl<T: EthSpec> BootNodeConfig<T> {
/// The set of configuration parameters that can safely be (de)serialized.
///
/// Its fields are a subset of the fields of `BootNodeConfig`.
/// Its fields are a subset of the fields of `BootNodeConfig`, some of them are copied from `Discv5Config`.
#[derive(Serialize, Deserialize)]
pub struct BootNodeConfigSerialization {
pub listen_socket: SocketAddr,
// TODO: Generalise to multiaddr
pub boot_nodes: Vec<Enr>,
pub local_enr: Enr,
pub disable_packet_filter: bool,
pub enable_enr_auto_update: bool,
}
impl BootNodeConfigSerialization {
@ -150,7 +152,7 @@ impl BootNodeConfigSerialization {
boot_nodes,
local_enr,
local_key: _,
discv5_config: _,
discv5_config,
phantom: _,
} = config;
@ -158,6 +160,8 @@ impl BootNodeConfigSerialization {
listen_socket: *listen_socket,
boot_nodes: boot_nodes.clone(),
local_enr: local_enr.clone(),
disable_packet_filter: !discv5_config.enable_packet_filter,
enable_enr_auto_update: discv5_config.enr_update,
}
}
}

View File

@ -139,9 +139,25 @@ fn enr_port_flag() {
})
}
// TODO add tests for flags `enable-enr-auto-update` and `disable-packet-filter`.
//
// These options end up in `Discv5Config`, which doesn't support serde (de)serialization.
#[test]
fn disable_packet_filter_flag() {
CommandLineTest::new()
.flag("disable-packet-filter", None)
.run_with_ip()
.with_config(|config| {
assert_eq!(config.disable_packet_filter, true);
});
}
#[test]
fn enable_enr_auto_update_flag() {
CommandLineTest::new()
.flag("enable-enr-auto-update", None)
.run_with_ip()
.with_config(|config| {
assert_eq!(config.enable_enr_auto_update, true);
});
}
#[test]
fn network_dir_flag() {