cmd/utils: respect --state.size-tracking=false

This commit is contained in:
RekCuy63 2026-05-20 10:55:52 +08:00
parent 50ae34c1d8
commit 7e1ea234f5
2 changed files with 44 additions and 2 deletions

View file

@ -1936,8 +1936,8 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
cfg.EthDiscoveryURLs = SplitAndTrim(urls)
}
}
if ctx.Bool(StateSizeTrackingFlag.Name) {
cfg.EnableStateSizeTracking = true
if ctx.IsSet(StateSizeTrackingFlag.Name) {
cfg.EnableStateSizeTracking = ctx.Bool(StateSizeTrackingFlag.Name)
}
// Override any default configs for hard coded networks.
switch {

View file

@ -18,8 +18,12 @@
package utils
import (
"flag"
"reflect"
"testing"
"github.com/ethereum/go-ethereum/eth/ethconfig"
"github.com/urfave/cli/v2"
)
func Test_SplitTagsFlag(t *testing.T) {
@ -64,3 +68,41 @@ func Test_SplitTagsFlag(t *testing.T) {
})
}
}
func TestSetEthConfigAllowsDisablingStateSizeTracking(t *testing.T) {
ctx := newTestFlagContext(t, []cli.Flag{
CacheFlag,
CacheDatabaseFlag,
CacheGCFlag,
CacheSnapshotFlag,
CacheTrieFlag,
CryptoKZGFlag,
FDLimitFlag,
GCModeFlag,
SnapshotFlag,
StateSizeTrackingFlag,
}, "--state.size-tracking=false")
cfg := ethconfig.Defaults
cfg.EnableStateSizeTracking = true
SetEthConfig(ctx, nil, &cfg)
if cfg.EnableStateSizeTracking {
t.Fatal("state size tracking should be disabled by explicit CLI flag")
}
}
func newTestFlagContext(t *testing.T, flags []cli.Flag, args ...string) *cli.Context {
t.Helper()
set := flag.NewFlagSet(t.Name(), flag.ContinueOnError)
for _, flag := range flags {
if err := flag.Apply(set); err != nil {
t.Fatal(err)
}
}
if err := set.Parse(args); err != nil {
t.Fatal(err)
}
return cli.NewContext(cli.NewApp(), set, nil)
}