Add regression tests for boot_node (#2749)

## Issue Addressed
Resolves #2602

## Proposed Changes

*Note: For a review it might help to look at the individual commits.*

### `boot_node`
Add support for the flags `dump-config` and `immediate-shutdown`. For `immediate-shutdown` the actual behavior could be described as `dump-config-and-exit`.

Both flags are handled in `boot_node::main`, which appears to be the simplest approach.

### `boot_node` regression tests
Added in `lighthouse/tests/boot_node.rs`.

### `CommandLineTestExec`
Factors out boilerplate related to CLI tests. It's used in the regression tests for `boot_node`, `beacon_node` and `validator_client`.

## 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.

I haven't found a workaround - guidance would be appreciated.
This commit is contained in:
mooori
2021-11-08 01:37:58 +00:00
parent fbafe416d1
commit d01fe02824
11 changed files with 473 additions and 292 deletions

5
Cargo.lock generated
View File

@@ -479,11 +479,15 @@ version = "2.0.1"
dependencies = [
"beacon_node",
"clap",
"clap_utils",
"eth2_ssz",
"hex",
"lighthouse_network",
"log",
"logging",
"serde",
"serde_derive",
"serde_json",
"slog",
"slog-async",
"slog-scope",
@@ -3193,6 +3197,7 @@ dependencies = [
"lighthouse_network",
"lighthouse_version",
"malloc_utils",
"serde",
"serde_json",
"slashing_protection",
"slog",