From bbe9cce9145f0ae485a361391e0ed5a510e7410b Mon Sep 17 00:00:00 2001 From: alan <652732310@qq.com> Date: Mon, 6 Jan 2025 21:42:57 +0800 Subject: [PATCH 1/6] ensure VmBin and Server exist --- op-challenger/config/config.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/op-challenger/config/config.go b/op-challenger/config/config.go index 6faf7c9fdca3..1d67fcb66513 100644 --- a/op-challenger/config/config.go +++ b/op-challenger/config/config.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "net/url" + "os" "runtime" "slices" "strconv" @@ -213,9 +214,15 @@ func (c Config) Check() error { if c.Cannon.VmBin == "" { return ErrMissingCannonBin } + if _, err := os.Stat(c.Cannon.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingCannonBin, err) + } if c.Cannon.Server == "" { return ErrMissingCannonServer } + if _, err := os.Stat(c.Cannon.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingCannonServer, err) + } if c.Cannon.Network == "" { if c.Cannon.RollupConfigPath == "" { return ErrMissingCannonRollupConfig @@ -251,9 +258,15 @@ func (c Config) Check() error { if c.Asterisc.VmBin == "" { return ErrMissingAsteriscBin } + if _, err := os.Stat(c.Asterisc.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscBin, err) + } if c.Asterisc.Server == "" { return ErrMissingAsteriscServer } + if _, err := os.Stat(c.Asterisc.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscServer, err) + } if c.Asterisc.Network == "" { if c.Asterisc.RollupConfigPath == "" { return ErrMissingAsteriscRollupConfig @@ -286,9 +299,15 @@ func (c Config) Check() error { if c.AsteriscKona.VmBin == "" { return ErrMissingAsteriscKonaBin } + if _, err := os.Stat(c.AsteriscKona.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaBin, err) + } if c.AsteriscKona.Server == "" { return ErrMissingAsteriscKonaServer } + if _, err := os.Stat(c.AsteriscKona.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaServer, err) + } if c.AsteriscKona.Network == "" { if c.AsteriscKona.RollupConfigPath == "" { return ErrMissingAsteriscKonaRollupConfig From be8f5b45a33d1a69e438057eb69f023177772c24 Mon Sep 17 00:00:00 2001 From: alan <652732310@qq.com> Date: Wed, 8 Jan 2025 09:27:32 +0800 Subject: [PATCH 2/6] only check when not in test --- op-challenger/config/config.go | 41 ++++++++++++++++++----------- op-challenger/config/config_test.go | 4 +++ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/op-challenger/config/config.go b/op-challenger/config/config.go index 1d67fcb66513..77759c6854bf 100644 --- a/op-challenger/config/config.go +++ b/op-challenger/config/config.go @@ -185,6 +185,8 @@ func (c Config) TraceTypeEnabled(t types.TraceType) bool { return slices.Contains(c.TraceTypes, t) } +var IS_TEST = false + func (c Config) Check() error { if c.L1EthRpc == "" { return ErrMissingL1EthRPC @@ -214,15 +216,18 @@ func (c Config) Check() error { if c.Cannon.VmBin == "" { return ErrMissingCannonBin } - if _, err := os.Stat(c.Cannon.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingCannonBin, err) - } if c.Cannon.Server == "" { return ErrMissingCannonServer } - if _, err := os.Stat(c.Cannon.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingCannonServer, err) + if !IS_TEST { + if _, err := os.Stat(c.Cannon.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingCannonBin, err) + } + if _, err := os.Stat(c.Cannon.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingCannonServer, err) + } } + if c.Cannon.Network == "" { if c.Cannon.RollupConfigPath == "" { return ErrMissingCannonRollupConfig @@ -258,15 +263,18 @@ func (c Config) Check() error { if c.Asterisc.VmBin == "" { return ErrMissingAsteriscBin } - if _, err := os.Stat(c.Asterisc.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscBin, err) - } if c.Asterisc.Server == "" { return ErrMissingAsteriscServer } - if _, err := os.Stat(c.Asterisc.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscServer, err) + if !IS_TEST { + if _, err := os.Stat(c.Asterisc.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscBin, err) + } + if _, err := os.Stat(c.Asterisc.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscServer, err) + } } + if c.Asterisc.Network == "" { if c.Asterisc.RollupConfigPath == "" { return ErrMissingAsteriscRollupConfig @@ -299,15 +307,18 @@ func (c Config) Check() error { if c.AsteriscKona.VmBin == "" { return ErrMissingAsteriscKonaBin } - if _, err := os.Stat(c.AsteriscKona.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaBin, err) - } if c.AsteriscKona.Server == "" { return ErrMissingAsteriscKonaServer } - if _, err := os.Stat(c.AsteriscKona.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaServer, err) + if !IS_TEST { + if _, err := os.Stat(c.AsteriscKona.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaBin, err) + } + if _, err := os.Stat(c.AsteriscKona.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaServer, err) + } } + if c.AsteriscKona.Network == "" { if c.AsteriscKona.RollupConfigPath == "" { return ErrMissingAsteriscKonaRollupConfig diff --git a/op-challenger/config/config_test.go b/op-challenger/config/config_test.go index bf910ab83e85..98f015d2ac33 100644 --- a/op-challenger/config/config_test.go +++ b/op-challenger/config/config_test.go @@ -43,6 +43,10 @@ var cannonTraceTypes = []types.TraceType{types.TraceTypeCannon, types.TraceTypeP var asteriscTraceTypes = []types.TraceType{types.TraceTypeAsterisc} var asteriscKonaTraceTypes = []types.TraceType{types.TraceTypeAsteriscKona} +func init() { + IS_TEST = true +} + func applyValidConfigForCannon(cfg *Config) { cfg.Cannon.VmBin = validCannonBin cfg.Cannon.Server = validCannonOpProgramBin From 6fa8786d50825c7ff3d339eba1dd7d7aaada11c4 Mon Sep 17 00:00:00 2001 From: alan <652732310@qq.com> Date: Thu, 9 Jan 2025 17:15:35 +0800 Subject: [PATCH 3/6] test file exists --- op-challenger/config/config.go | 41 +++--- op-challenger/config/config_test.go | 199 +++++++++++++++++----------- 2 files changed, 137 insertions(+), 103 deletions(-) diff --git a/op-challenger/config/config.go b/op-challenger/config/config.go index 77759c6854bf..49fac4ed6ad8 100644 --- a/op-challenger/config/config.go +++ b/op-challenger/config/config.go @@ -185,8 +185,6 @@ func (c Config) TraceTypeEnabled(t types.TraceType) bool { return slices.Contains(c.TraceTypes, t) } -var IS_TEST = false - func (c Config) Check() error { if c.L1EthRpc == "" { return ErrMissingL1EthRPC @@ -219,13 +217,12 @@ func (c Config) Check() error { if c.Cannon.Server == "" { return ErrMissingCannonServer } - if !IS_TEST { - if _, err := os.Stat(c.Cannon.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingCannonBin, err) - } - if _, err := os.Stat(c.Cannon.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingCannonServer, err) - } + + if _, err := os.Stat(c.Cannon.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingCannonBin, err) + } + if _, err := os.Stat(c.Cannon.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingCannonServer, err) } if c.Cannon.Network == "" { @@ -266,13 +263,12 @@ func (c Config) Check() error { if c.Asterisc.Server == "" { return ErrMissingAsteriscServer } - if !IS_TEST { - if _, err := os.Stat(c.Asterisc.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscBin, err) - } - if _, err := os.Stat(c.Asterisc.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscServer, err) - } + + if _, err := os.Stat(c.Asterisc.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscBin, err) + } + if _, err := os.Stat(c.Asterisc.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscServer, err) } if c.Asterisc.Network == "" { @@ -310,13 +306,12 @@ func (c Config) Check() error { if c.AsteriscKona.Server == "" { return ErrMissingAsteriscKonaServer } - if !IS_TEST { - if _, err := os.Stat(c.AsteriscKona.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaBin, err) - } - if _, err := os.Stat(c.AsteriscKona.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaServer, err) - } + + if _, err := os.Stat(c.AsteriscKona.VmBin); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaBin, err) + } + if _, err := os.Stat(c.AsteriscKona.Server); err != nil { + return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaServer, err) } if c.AsteriscKona.Network == "" { diff --git a/op-challenger/config/config_test.go b/op-challenger/config/config_test.go index 98f015d2ac33..8118d8c4c9e5 100644 --- a/op-challenger/config/config_test.go +++ b/op-challenger/config/config_test.go @@ -3,6 +3,8 @@ package config import ( "fmt" "net/url" + "os" + "path/filepath" "runtime" "testing" @@ -43,41 +45,72 @@ var cannonTraceTypes = []types.TraceType{types.TraceTypeCannon, types.TraceTypeP var asteriscTraceTypes = []types.TraceType{types.TraceTypeAsterisc} var asteriscKonaTraceTypes = []types.TraceType{types.TraceTypeAsteriscKona} -func init() { - IS_TEST = true +func ensureExists(path string) error { + _, err := os.Stat(path) + if err == nil { + return nil + } + err = os.MkdirAll(filepath.Dir(path), os.ModePerm) + if err != nil { + return err + } + file, err := os.Create(path) + if err != nil { + return err + } + return file.Close() } -func applyValidConfigForCannon(cfg *Config) { - cfg.Cannon.VmBin = validCannonBin - cfg.Cannon.Server = validCannonOpProgramBin +func applyValidConfigForCannon(t *testing.T, cfg *Config) { + + vmBin := filepath.Join(t.TempDir(), validCannonBin) + server := filepath.Join(t.TempDir(), validCannonOpProgramBin) + err := ensureExists(vmBin) + require.NoError(t, err) + err = ensureExists(server) + require.NoError(t, err) + cfg.Cannon.VmBin = vmBin + cfg.Cannon.Server = server cfg.CannonAbsolutePreStateBaseURL = validCannonAbsolutePreStateBaseURL cfg.Cannon.Network = validCannonNetwork } -func applyValidConfigForAsterisc(cfg *Config) { - cfg.Asterisc.VmBin = validAsteriscBin - cfg.Asterisc.Server = validAsteriscOpProgramBin +func applyValidConfigForAsterisc(t *testing.T, cfg *Config) { + vmBin := filepath.Join(t.TempDir(), validAsteriscBin) + server := filepath.Join(t.TempDir(), validAsteriscOpProgramBin) + err := ensureExists(vmBin) + require.NoError(t, err) + err = ensureExists(server) + require.NoError(t, err) + cfg.Asterisc.VmBin = vmBin + cfg.Asterisc.Server = server cfg.AsteriscAbsolutePreStateBaseURL = validAsteriscAbsolutePreStateBaseURL cfg.Asterisc.Network = validAsteriscNetwork } -func applyValidConfigForAsteriscKona(cfg *Config) { - cfg.AsteriscKona.VmBin = validAsteriscKonaBin - cfg.AsteriscKona.Server = validAsteriscKonaServerBin +func applyValidConfigForAsteriscKona(t *testing.T, cfg *Config) { + vmBin := filepath.Join(t.TempDir(), validAsteriscKonaBin) + server := filepath.Join(t.TempDir(), validAsteriscKonaServerBin) + err := ensureExists(vmBin) + require.NoError(t, err) + err = ensureExists(server) + require.NoError(t, err) + cfg.AsteriscKona.VmBin = vmBin + cfg.AsteriscKona.Server = server cfg.AsteriscKonaAbsolutePreStateBaseURL = validAsteriscKonaAbsolutePreStateBaseURL cfg.AsteriscKona.Network = validAsteriscKonaNetwork } -func validConfig(traceType types.TraceType) Config { +func validConfig(t *testing.T, traceType types.TraceType) Config { cfg := NewConfig(validGameFactoryAddress, validL1EthRpc, validL1BeaconUrl, validRollupRpc, validL2Rpc, validDatadir, traceType) if traceType == types.TraceTypeCannon || traceType == types.TraceTypePermissioned { - applyValidConfigForCannon(&cfg) + applyValidConfigForCannon(t, &cfg) } if traceType == types.TraceTypeAsterisc { - applyValidConfigForAsterisc(&cfg) + applyValidConfigForAsterisc(t, &cfg) } if traceType == types.TraceTypeAsteriscKona { - applyValidConfigForAsteriscKona(&cfg) + applyValidConfigForAsteriscKona(t, &cfg) } return cfg } @@ -87,7 +120,7 @@ func TestValidConfigIsValid(t *testing.T) { for _, traceType := range types.TraceTypes { traceType := traceType t.Run(traceType.String(), func(t *testing.T) { - err := validConfig(traceType).Check() + err := validConfig(t, traceType).Check() require.NoError(t, err) }) } @@ -95,38 +128,38 @@ func TestValidConfigIsValid(t *testing.T) { func TestTxMgrConfig(t *testing.T) { t.Run("Invalid", func(t *testing.T) { - config := validConfig(types.TraceTypeCannon) + config := validConfig(t, types.TraceTypeCannon) config.TxMgrConfig = txmgr.CLIConfig{} require.Equal(t, config.Check().Error(), "must provide a L1 RPC url") }) } func TestL1EthRpcRequired(t *testing.T) { - config := validConfig(types.TraceTypeCannon) + config := validConfig(t, types.TraceTypeCannon) config.L1EthRpc = "" require.ErrorIs(t, config.Check(), ErrMissingL1EthRPC) } func TestL1BeaconRequired(t *testing.T) { - config := validConfig(types.TraceTypeCannon) + config := validConfig(t, types.TraceTypeCannon) config.L1Beacon = "" require.ErrorIs(t, config.Check(), ErrMissingL1Beacon) } func TestGameFactoryAddressRequired(t *testing.T) { - config := validConfig(types.TraceTypeCannon) + config := validConfig(t, types.TraceTypeCannon) config.GameFactoryAddress = common.Address{} require.ErrorIs(t, config.Check(), ErrMissingGameFactoryAddress) } func TestSelectiveClaimResolutionNotRequired(t *testing.T) { - config := validConfig(types.TraceTypeCannon) + config := validConfig(t, types.TraceTypeCannon) require.Equal(t, false, config.SelectiveClaimResolution) require.NoError(t, config.Check()) } func TestGameAllowlistNotRequired(t *testing.T) { - config := validConfig(types.TraceTypeCannon) + config := validConfig(t, types.TraceTypeCannon) config.GameAllowlist = []common.Address{} require.NoError(t, config.Check()) } @@ -136,33 +169,33 @@ func TestCannonRequiredArgs(t *testing.T) { traceType := traceType t.Run(fmt.Sprintf("TestCannonBinRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.Cannon.VmBin = "" require.ErrorIs(t, config.Check(), ErrMissingCannonBin) }) t.Run(fmt.Sprintf("TestCannonServerRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.Cannon.Server = "" require.ErrorIs(t, config.Check(), ErrMissingCannonServer) }) t.Run(fmt.Sprintf("TestCannonAbsolutePreStateOrBaseURLRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.CannonAbsolutePreState = "" config.CannonAbsolutePreStateBaseURL = nil require.ErrorIs(t, config.Check(), ErrMissingCannonAbsolutePreState) }) t.Run(fmt.Sprintf("TestCannonAbsolutePreState-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.CannonAbsolutePreState = validCannonAbsolutePreState config.CannonAbsolutePreStateBaseURL = nil require.NoError(t, config.Check()) }) t.Run(fmt.Sprintf("TestCannonAbsolutePreStateBaseURL-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.CannonAbsolutePreState = "" config.CannonAbsolutePreStateBaseURL = validCannonAbsolutePreStateBaseURL require.NoError(t, config.Check()) @@ -170,21 +203,21 @@ func TestCannonRequiredArgs(t *testing.T) { t.Run(fmt.Sprintf("TestAllowSupplyingBothCannonAbsolutePreStateAndBaseURL-%v", traceType), func(t *testing.T) { // Since the prestate baseURL might be inherited from the --prestate-urls option, allow overriding it with a specific prestate - config := validConfig(traceType) + config := validConfig(t, traceType) config.CannonAbsolutePreState = validCannonAbsolutePreState config.CannonAbsolutePreStateBaseURL = validCannonAbsolutePreStateBaseURL require.NoError(t, config.Check()) }) t.Run(fmt.Sprintf("TestL2RpcRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.L2Rpc = "" require.ErrorIs(t, config.Check(), ErrMissingL2Rpc) }) t.Run(fmt.Sprintf("TestCannonSnapshotFreq-%v", traceType), func(t *testing.T) { t.Run("MustNotBeZero", func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.SnapshotFreq = 0 require.ErrorIs(t, cfg.Check(), ErrMissingCannonSnapshotFreq) }) @@ -192,14 +225,14 @@ func TestCannonRequiredArgs(t *testing.T) { t.Run(fmt.Sprintf("TestCannonInfoFreq-%v", traceType), func(t *testing.T) { t.Run("MustNotBeZero", func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.InfoFreq = 0 require.ErrorIs(t, cfg.Check(), ErrMissingCannonInfoFreq) }) }) t.Run(fmt.Sprintf("TestCannonNetworkOrRollupConfigRequired-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.Network = "" cfg.Cannon.RollupConfigPath = "" cfg.Cannon.L2GenesisPath = "genesis.json" @@ -207,7 +240,7 @@ func TestCannonRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestCannonNetworkOrL2GenesisRequired-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.Network = "" cfg.Cannon.RollupConfigPath = "foo.json" cfg.Cannon.L2GenesisPath = "" @@ -215,7 +248,7 @@ func TestCannonRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestMustNotSpecifyNetworkAndRollup-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.Network = validCannonNetwork cfg.Cannon.RollupConfigPath = "foo.json" cfg.Cannon.L2GenesisPath = "" @@ -223,7 +256,7 @@ func TestCannonRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestMustNotSpecifyNetworkAndL2Genesis-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.Network = validCannonNetwork cfg.Cannon.RollupConfigPath = "" cfg.Cannon.L2GenesisPath = "foo.json" @@ -231,25 +264,25 @@ func TestCannonRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestNetworkMustBeValid-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.Network = "unknown" require.ErrorIs(t, cfg.Check(), ErrCannonNetworkUnknown) }) t.Run(fmt.Sprintf("TestNetworkMayBeAnyChainID-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.Network = "467294" require.NoError(t, cfg.Check()) }) t.Run(fmt.Sprintf("TestNetworkInvalidWhenNotEntirelyNumeric-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Cannon.Network = "467294a" require.ErrorIs(t, cfg.Check(), ErrCannonNetworkUnknown) }) t.Run(fmt.Sprintf("TestDebugInfoEnabled-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) require.True(t, cfg.Cannon.DebugInfo) }) } @@ -260,33 +293,33 @@ func TestAsteriscRequiredArgs(t *testing.T) { traceType := traceType t.Run(fmt.Sprintf("TestAsteriscBinRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.Asterisc.VmBin = "" require.ErrorIs(t, config.Check(), ErrMissingAsteriscBin) }) t.Run(fmt.Sprintf("TestAsteriscServerRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.Asterisc.Server = "" require.ErrorIs(t, config.Check(), ErrMissingAsteriscServer) }) t.Run(fmt.Sprintf("TestAsteriscAbsolutePreStateOrBaseURLRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscAbsolutePreState = "" config.AsteriscAbsolutePreStateBaseURL = nil require.ErrorIs(t, config.Check(), ErrMissingAsteriscAbsolutePreState) }) t.Run(fmt.Sprintf("TestAsteriscAbsolutePreState-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscAbsolutePreState = validAsteriscAbsolutePreState config.AsteriscAbsolutePreStateBaseURL = nil require.NoError(t, config.Check()) }) t.Run(fmt.Sprintf("TestAsteriscAbsolutePreStateBaseURL-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscAbsolutePreState = "" config.AsteriscAbsolutePreStateBaseURL = validAsteriscAbsolutePreStateBaseURL require.NoError(t, config.Check()) @@ -294,21 +327,21 @@ func TestAsteriscRequiredArgs(t *testing.T) { t.Run(fmt.Sprintf("TestAllowSupplingBothAsteriscAbsolutePreStateAndBaseURL-%v", traceType), func(t *testing.T) { // Since the prestate base URL might be inherited from the --prestate-urls option, allow overriding it with a specific prestate - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscAbsolutePreState = validAsteriscAbsolutePreState config.AsteriscAbsolutePreStateBaseURL = validAsteriscAbsolutePreStateBaseURL require.NoError(t, config.Check()) }) t.Run(fmt.Sprintf("TestL2RpcRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.L2Rpc = "" require.ErrorIs(t, config.Check(), ErrMissingL2Rpc) }) t.Run(fmt.Sprintf("TestAsteriscSnapshotFreq-%v", traceType), func(t *testing.T) { t.Run("MustNotBeZero", func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Asterisc.SnapshotFreq = 0 require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscSnapshotFreq) }) @@ -316,14 +349,14 @@ func TestAsteriscRequiredArgs(t *testing.T) { t.Run(fmt.Sprintf("TestAsteriscInfoFreq-%v", traceType), func(t *testing.T) { t.Run("MustNotBeZero", func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Asterisc.InfoFreq = 0 require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscInfoFreq) }) }) t.Run(fmt.Sprintf("TestAsteriscNetworkOrRollupConfigRequired-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Asterisc.Network = "" cfg.Asterisc.RollupConfigPath = "" cfg.Asterisc.L2GenesisPath = "genesis.json" @@ -331,7 +364,7 @@ func TestAsteriscRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestAsteriscNetworkOrL2GenesisRequired-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Asterisc.Network = "" cfg.Asterisc.RollupConfigPath = "foo.json" cfg.Asterisc.L2GenesisPath = "" @@ -339,7 +372,7 @@ func TestAsteriscRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestMustNotSpecifyNetworkAndRollup-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Asterisc.Network = validAsteriscNetwork cfg.Asterisc.RollupConfigPath = "foo.json" cfg.Asterisc.L2GenesisPath = "" @@ -347,7 +380,7 @@ func TestAsteriscRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestMustNotSpecifyNetworkAndL2Genesis-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Asterisc.Network = validAsteriscNetwork cfg.Asterisc.RollupConfigPath = "" cfg.Asterisc.L2GenesisPath = "foo.json" @@ -355,13 +388,13 @@ func TestAsteriscRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestNetworkMustBeValid-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.Asterisc.Network = "unknown" require.ErrorIs(t, cfg.Check(), ErrAsteriscNetworkUnknown) }) t.Run(fmt.Sprintf("TestDebugInfoDisabled-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) require.False(t, cfg.Asterisc.DebugInfo) }) } @@ -372,33 +405,33 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { traceType := traceType t.Run(fmt.Sprintf("TestAsteriscKonaBinRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscKona.VmBin = "" require.ErrorIs(t, config.Check(), ErrMissingAsteriscKonaBin) }) t.Run(fmt.Sprintf("TestAsteriscKonaServerRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscKona.Server = "" require.ErrorIs(t, config.Check(), ErrMissingAsteriscKonaServer) }) t.Run(fmt.Sprintf("TestAsteriscKonaAbsolutePreStateOrBaseURLRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscKonaAbsolutePreState = "" config.AsteriscKonaAbsolutePreStateBaseURL = nil require.ErrorIs(t, config.Check(), ErrMissingAsteriscKonaAbsolutePreState) }) t.Run(fmt.Sprintf("TestAsteriscKonaAbsolutePreState-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscKonaAbsolutePreState = validAsteriscKonaAbsolutePreState config.AsteriscKonaAbsolutePreStateBaseURL = nil require.NoError(t, config.Check()) }) t.Run(fmt.Sprintf("TestAsteriscKonaAbsolutePreStateBaseURL-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscKonaAbsolutePreState = "" config.AsteriscKonaAbsolutePreStateBaseURL = validAsteriscKonaAbsolutePreStateBaseURL require.NoError(t, config.Check()) @@ -406,21 +439,21 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { t.Run(fmt.Sprintf("TestAllowSupplyingBothAsteriscKonaAbsolutePreStateAndBaseURL-%v", traceType), func(t *testing.T) { // Since the prestate base URL might be inherited from the --prestate-urls option, allow overriding it with a specific prestate - config := validConfig(traceType) + config := validConfig(t, traceType) config.AsteriscKonaAbsolutePreState = validAsteriscKonaAbsolutePreState config.AsteriscKonaAbsolutePreStateBaseURL = validAsteriscKonaAbsolutePreStateBaseURL require.NoError(t, config.Check()) }) t.Run(fmt.Sprintf("TestL2RpcRequired-%v", traceType), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.L2Rpc = "" require.ErrorIs(t, config.Check(), ErrMissingL2Rpc) }) t.Run(fmt.Sprintf("TestAsteriscKonaSnapshotFreq-%v", traceType), func(t *testing.T) { t.Run("MustNotBeZero", func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.AsteriscKona.SnapshotFreq = 0 require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscKonaSnapshotFreq) }) @@ -428,14 +461,14 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { t.Run(fmt.Sprintf("TestAsteriscKonaInfoFreq-%v", traceType), func(t *testing.T) { t.Run("MustNotBeZero", func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.AsteriscKona.InfoFreq = 0 require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscKonaInfoFreq) }) }) t.Run(fmt.Sprintf("TestAsteriscKonaNetworkOrRollupConfigRequired-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.AsteriscKona.Network = "" cfg.AsteriscKona.RollupConfigPath = "" cfg.AsteriscKona.L2GenesisPath = "genesis.json" @@ -443,7 +476,7 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestAsteriscKonaNetworkOrL2GenesisRequired-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.AsteriscKona.Network = "" cfg.AsteriscKona.RollupConfigPath = "foo.json" cfg.AsteriscKona.L2GenesisPath = "" @@ -451,7 +484,7 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestMustNotSpecifyNetworkAndRollup-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.AsteriscKona.Network = validAsteriscKonaNetwork cfg.AsteriscKona.RollupConfigPath = "foo.json" cfg.AsteriscKona.L2GenesisPath = "" @@ -459,7 +492,7 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestMustNotSpecifyNetworkAndL2Genesis-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.AsteriscKona.Network = validAsteriscKonaNetwork cfg.AsteriscKona.RollupConfigPath = "" cfg.AsteriscKona.L2GenesisPath = "foo.json" @@ -467,40 +500,40 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { }) t.Run(fmt.Sprintf("TestNetworkMustBeValid-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) cfg.AsteriscKona.Network = "unknown" require.ErrorIs(t, cfg.Check(), ErrAsteriscKonaNetworkUnknown) }) t.Run(fmt.Sprintf("TestDebugInfoDisabled-%v", traceType), func(t *testing.T) { - cfg := validConfig(traceType) + cfg := validConfig(t, traceType) require.False(t, cfg.AsteriscKona.DebugInfo) }) } } func TestDatadirRequired(t *testing.T) { - config := validConfig(types.TraceTypeAlphabet) + config := validConfig(t, types.TraceTypeAlphabet) config.Datadir = "" require.ErrorIs(t, config.Check(), ErrMissingDatadir) } func TestMaxConcurrency(t *testing.T) { t.Run("Required", func(t *testing.T) { - config := validConfig(types.TraceTypeAlphabet) + config := validConfig(t, types.TraceTypeAlphabet) config.MaxConcurrency = 0 require.ErrorIs(t, config.Check(), ErrMaxConcurrencyZero) }) t.Run("DefaultToNumberOfCPUs", func(t *testing.T) { - config := validConfig(types.TraceTypeAlphabet) + config := validConfig(t, types.TraceTypeAlphabet) require.EqualValues(t, runtime.NumCPU(), config.MaxConcurrency) }) } func TestHttpPollInterval(t *testing.T) { t.Run("Default", func(t *testing.T) { - config := validConfig(types.TraceTypeAlphabet) + config := validConfig(t, types.TraceTypeAlphabet) require.EqualValues(t, DefaultPollInterval, config.PollInterval) }) } @@ -509,7 +542,7 @@ func TestRollupRpcRequired(t *testing.T) { for _, traceType := range types.TraceTypes { traceType := traceType t.Run(traceType.String(), func(t *testing.T) { - config := validConfig(traceType) + config := validConfig(t, traceType) config.RollupRpc = "" require.ErrorIs(t, config.Check(), ErrMissingRollupRpc) }) @@ -517,7 +550,7 @@ func TestRollupRpcRequired(t *testing.T) { } func TestRequireConfigForMultipleTraceTypesForCannon(t *testing.T) { - cfg := validConfig(types.TraceTypeCannon) + cfg := validConfig(t, types.TraceTypeCannon) cfg.TraceTypes = []types.TraceType{types.TraceTypeCannon, types.TraceTypeAlphabet} // Set all required options and check its valid cfg.RollupRpc = validRollupRpc @@ -535,7 +568,7 @@ func TestRequireConfigForMultipleTraceTypesForCannon(t *testing.T) { } func TestRequireConfigForMultipleTraceTypesForAsterisc(t *testing.T) { - cfg := validConfig(types.TraceTypeAsterisc) + cfg := validConfig(t, types.TraceTypeAsterisc) cfg.TraceTypes = []types.TraceType{types.TraceTypeAsterisc, types.TraceTypeAlphabet} // Set all required options and check its valid cfg.RollupRpc = validRollupRpc @@ -553,8 +586,8 @@ func TestRequireConfigForMultipleTraceTypesForAsterisc(t *testing.T) { } func TestRequireConfigForMultipleTraceTypesForCannonAndAsterisc(t *testing.T) { - cfg := validConfig(types.TraceTypeCannon) - applyValidConfigForAsterisc(&cfg) + cfg := validConfig(t, types.TraceTypeCannon) + applyValidConfigForAsterisc(t, &cfg) cfg.TraceTypes = []types.TraceType{types.TraceTypeCannon, types.TraceTypeAsterisc, types.TraceTypeAlphabet, types.TraceTypeFast} // Set all required options and check its valid @@ -564,7 +597,10 @@ func TestRequireConfigForMultipleTraceTypesForCannonAndAsterisc(t *testing.T) { // Require cannon specific args cfg.Cannon.VmBin = "" require.ErrorIs(t, cfg.Check(), ErrMissingCannonBin) - cfg.Cannon.VmBin = validCannonBin + vmBin := filepath.Join(t.TempDir(), validCannonBin) + err := ensureExists(vmBin) + require.NoError(t, err) + cfg.Cannon.VmBin = vmBin // Require asterisc specific args cfg.AsteriscAbsolutePreState = "" @@ -575,7 +611,10 @@ func TestRequireConfigForMultipleTraceTypesForCannonAndAsterisc(t *testing.T) { // Require cannon specific args cfg.Asterisc.Server = "" require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscServer) - cfg.Asterisc.Server = validAsteriscOpProgramBin + server := filepath.Join(t.TempDir(), validAsteriscOpProgramBin) + err = ensureExists(server) + require.NoError(t, err) + cfg.Asterisc.Server = server // Check final config is valid require.NoError(t, cfg.Check()) From 0dedea3c5e541f9005d86acce25a163868321574 Mon Sep 17 00:00:00 2001 From: alan <652732310@qq.com> Date: Fri, 10 Jan 2025 16:13:29 +0800 Subject: [PATCH 4/6] reuse TempDir() --- op-challenger/config/config_test.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/op-challenger/config/config_test.go b/op-challenger/config/config_test.go index 8118d8c4c9e5..6450dcc651d9 100644 --- a/op-challenger/config/config_test.go +++ b/op-challenger/config/config_test.go @@ -63,8 +63,9 @@ func ensureExists(path string) error { func applyValidConfigForCannon(t *testing.T, cfg *Config) { - vmBin := filepath.Join(t.TempDir(), validCannonBin) - server := filepath.Join(t.TempDir(), validCannonOpProgramBin) + tmpDir := t.TempDir() + vmBin := filepath.Join(tmpDir, validCannonBin) + server := filepath.Join(tmpDir, validCannonOpProgramBin) err := ensureExists(vmBin) require.NoError(t, err) err = ensureExists(server) @@ -76,8 +77,9 @@ func applyValidConfigForCannon(t *testing.T, cfg *Config) { } func applyValidConfigForAsterisc(t *testing.T, cfg *Config) { - vmBin := filepath.Join(t.TempDir(), validAsteriscBin) - server := filepath.Join(t.TempDir(), validAsteriscOpProgramBin) + tmpDir := t.TempDir() + vmBin := filepath.Join(tmpDir, validAsteriscBin) + server := filepath.Join(tmpDir, validAsteriscOpProgramBin) err := ensureExists(vmBin) require.NoError(t, err) err = ensureExists(server) @@ -89,8 +91,9 @@ func applyValidConfigForAsterisc(t *testing.T, cfg *Config) { } func applyValidConfigForAsteriscKona(t *testing.T, cfg *Config) { - vmBin := filepath.Join(t.TempDir(), validAsteriscKonaBin) - server := filepath.Join(t.TempDir(), validAsteriscKonaServerBin) + tmpDir := t.TempDir() + vmBin := filepath.Join(tmpDir, validAsteriscKonaBin) + server := filepath.Join(tmpDir, validAsteriscKonaServerBin) err := ensureExists(vmBin) require.NoError(t, err) err = ensureExists(server) @@ -597,7 +600,8 @@ func TestRequireConfigForMultipleTraceTypesForCannonAndAsterisc(t *testing.T) { // Require cannon specific args cfg.Cannon.VmBin = "" require.ErrorIs(t, cfg.Check(), ErrMissingCannonBin) - vmBin := filepath.Join(t.TempDir(), validCannonBin) + tmpDir := t.TempDir() + vmBin := filepath.Join(tmpDir, validCannonBin) err := ensureExists(vmBin) require.NoError(t, err) cfg.Cannon.VmBin = vmBin @@ -611,7 +615,7 @@ func TestRequireConfigForMultipleTraceTypesForCannonAndAsterisc(t *testing.T) { // Require cannon specific args cfg.Asterisc.Server = "" require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscServer) - server := filepath.Join(t.TempDir(), validAsteriscOpProgramBin) + server := filepath.Join(tmpDir, validAsteriscOpProgramBin) err = ensureExists(server) require.NoError(t, err) cfg.Asterisc.Server = server From dd1d218168b52d1e8fe3c9e2233aa8fd19b8f81f Mon Sep 17 00:00:00 2001 From: alan <652732310@qq.com> Date: Fri, 10 Jan 2025 16:31:17 +0800 Subject: [PATCH 5/6] add tests for new errors --- op-challenger/config/config_test.go | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/op-challenger/config/config_test.go b/op-challenger/config/config_test.go index 6450dcc651d9..90cac879b327 100644 --- a/op-challenger/config/config_test.go +++ b/op-challenger/config/config_test.go @@ -288,6 +288,18 @@ func TestCannonRequiredArgs(t *testing.T) { cfg := validConfig(t, traceType) require.True(t, cfg.Cannon.DebugInfo) }) + + t.Run(fmt.Sprintf("TestCannonVMBinExists-%v", traceType), func(t *testing.T) { + cfg := validConfig(t, traceType) + cfg.Cannon.VmBin = validCannonBin + require.ErrorIs(t, cfg.Check(), ErrMissingCannonBin) + }) + + t.Run(fmt.Sprintf("TestCannonServerExists-%v", traceType), func(t *testing.T) { + cfg := validConfig(t, traceType) + cfg.Cannon.Server = validCannonOpProgramBin + require.ErrorIs(t, cfg.Check(), ErrMissingCannonServer) + }) } } @@ -400,6 +412,18 @@ func TestAsteriscRequiredArgs(t *testing.T) { cfg := validConfig(t, traceType) require.False(t, cfg.Asterisc.DebugInfo) }) + + t.Run(fmt.Sprintf("TestAsteriscVMBinExists-%v", traceType), func(t *testing.T) { + cfg := validConfig(t, traceType) + cfg.Asterisc.VmBin = validAsteriscBin + require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscBin) + }) + + t.Run(fmt.Sprintf("TestAsteriscServerExists-%v", traceType), func(t *testing.T) { + cfg := validConfig(t, traceType) + cfg.Asterisc.Server = validAsteriscOpProgramBin + require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscServer) + }) } } @@ -512,6 +536,18 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { cfg := validConfig(t, traceType) require.False(t, cfg.AsteriscKona.DebugInfo) }) + + t.Run(fmt.Sprintf("TestAsteriscKonaVMBinExists-%v", traceType), func(t *testing.T) { + cfg := validConfig(t, traceType) + cfg.AsteriscKona.VmBin = validAsteriscKonaBin + require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscKonaBin) + }) + + t.Run(fmt.Sprintf("TestAsteriscKonaServerExists-%v", traceType), func(t *testing.T) { + cfg := validConfig(t, traceType) + cfg.AsteriscKona.Server = validAsteriscKonaServerBin + require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscKonaServer) + }) } } From 12acb8f9d3335ff26b81e1055aeb87733fef5100 Mon Sep 17 00:00:00 2001 From: alan <652732310@qq.com> Date: Tue, 14 Jan 2025 00:04:09 +0800 Subject: [PATCH 6/6] address comments --- op-challenger/config/config.go | 12 ++++++------ op-challenger/config/config_test.go | 25 +++++++++++++------------ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/op-challenger/config/config.go b/op-challenger/config/config.go index 49fac4ed6ad8..1c0b18054558 100644 --- a/op-challenger/config/config.go +++ b/op-challenger/config/config.go @@ -219,10 +219,10 @@ func (c Config) Check() error { } if _, err := os.Stat(c.Cannon.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingCannonBin, err) + return fmt.Errorf("%w: %w", ErrMissingCannonBin, err) } if _, err := os.Stat(c.Cannon.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingCannonServer, err) + return fmt.Errorf("%w: %w", ErrMissingCannonServer, err) } if c.Cannon.Network == "" { @@ -265,10 +265,10 @@ func (c Config) Check() error { } if _, err := os.Stat(c.Asterisc.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscBin, err) + return fmt.Errorf("%w: %w", ErrMissingAsteriscBin, err) } if _, err := os.Stat(c.Asterisc.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscServer, err) + return fmt.Errorf("%w: %w", ErrMissingAsteriscServer, err) } if c.Asterisc.Network == "" { @@ -308,10 +308,10 @@ func (c Config) Check() error { } if _, err := os.Stat(c.AsteriscKona.VmBin); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaBin, err) + return fmt.Errorf("%w: %w", ErrMissingAsteriscKonaBin, err) } if _, err := os.Stat(c.AsteriscKona.Server); err != nil { - return fmt.Errorf("%w: %v", ErrMissingAsteriscKonaServer, err) + return fmt.Errorf("%w: %w", ErrMissingAsteriscKonaServer, err) } if c.AsteriscKona.Network == "" { diff --git a/op-challenger/config/config_test.go b/op-challenger/config/config_test.go index 90cac879b327..a9101827b194 100644 --- a/op-challenger/config/config_test.go +++ b/op-challenger/config/config_test.go @@ -34,6 +34,7 @@ var ( validAsteriscAbsolutePreState = "pre.json" validAsteriscAbsolutePreStateBaseURL, _ = url.Parse("http://localhost/bar/") + nonExistingFile = "path/to/nonexistent/file" validAsteriscKonaBin = "./bin/asterisc" validAsteriscKonaServerBin = "./bin/kona-host" validAsteriscKonaNetwork = "mainnet" @@ -289,15 +290,15 @@ func TestCannonRequiredArgs(t *testing.T) { require.True(t, cfg.Cannon.DebugInfo) }) - t.Run(fmt.Sprintf("TestCannonVMBinExists-%v", traceType), func(t *testing.T) { + t.Run(fmt.Sprintf("TestVMBinExists-%v", traceType), func(t *testing.T) { cfg := validConfig(t, traceType) - cfg.Cannon.VmBin = validCannonBin + cfg.Cannon.VmBin = nonExistingFile require.ErrorIs(t, cfg.Check(), ErrMissingCannonBin) }) - t.Run(fmt.Sprintf("TestCannonServerExists-%v", traceType), func(t *testing.T) { + t.Run(fmt.Sprintf("TestServerExists-%v", traceType), func(t *testing.T) { cfg := validConfig(t, traceType) - cfg.Cannon.Server = validCannonOpProgramBin + cfg.Cannon.Server = nonExistingFile require.ErrorIs(t, cfg.Check(), ErrMissingCannonServer) }) } @@ -413,15 +414,15 @@ func TestAsteriscRequiredArgs(t *testing.T) { require.False(t, cfg.Asterisc.DebugInfo) }) - t.Run(fmt.Sprintf("TestAsteriscVMBinExists-%v", traceType), func(t *testing.T) { + t.Run(fmt.Sprintf("TestVMBinExists-%v", traceType), func(t *testing.T) { cfg := validConfig(t, traceType) - cfg.Asterisc.VmBin = validAsteriscBin + cfg.Asterisc.VmBin = nonExistingFile require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscBin) }) - t.Run(fmt.Sprintf("TestAsteriscServerExists-%v", traceType), func(t *testing.T) { + t.Run(fmt.Sprintf("TestServerExists-%v", traceType), func(t *testing.T) { cfg := validConfig(t, traceType) - cfg.Asterisc.Server = validAsteriscOpProgramBin + cfg.Asterisc.Server = nonExistingFile require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscServer) }) } @@ -537,15 +538,15 @@ func TestAsteriscKonaRequiredArgs(t *testing.T) { require.False(t, cfg.AsteriscKona.DebugInfo) }) - t.Run(fmt.Sprintf("TestAsteriscKonaVMBinExists-%v", traceType), func(t *testing.T) { + t.Run(fmt.Sprintf("TestVMBinExists-%v", traceType), func(t *testing.T) { cfg := validConfig(t, traceType) - cfg.AsteriscKona.VmBin = validAsteriscKonaBin + cfg.AsteriscKona.VmBin = nonExistingFile require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscKonaBin) }) - t.Run(fmt.Sprintf("TestAsteriscKonaServerExists-%v", traceType), func(t *testing.T) { + t.Run(fmt.Sprintf("TestServerExists-%v", traceType), func(t *testing.T) { cfg := validConfig(t, traceType) - cfg.AsteriscKona.Server = validAsteriscKonaServerBin + cfg.AsteriscKona.Server = nonExistingFile require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscKonaServer) }) }