Skip to content

Commit

Permalink
Add config test for using both cannon and asterisc
Browse files Browse the repository at this point in the history
  • Loading branch information
pcw109550 committed Apr 17, 2024
1 parent fa533d9 commit f8d9d5b
Showing 1 changed file with 48 additions and 10 deletions.
58 changes: 48 additions & 10 deletions op-challenger/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,29 @@ var (

var cannonTraceTypes = []TraceType{TraceTypeCannon, TraceTypePermissioned}

func applyValidConfigForCannon(cfg *Config) {
cfg.CannonBin = validCannonBin
cfg.CannonServer = validCannonOpProgramBin
cfg.CannonAbsolutePreState = validCannonAbsolutPreState
cfg.CannonL2 = validCannonL2
cfg.CannonNetwork = validCannonNetwork
}

func applyValidConfigForAsterisc(cfg *Config) {
cfg.AsteriscBin = validAsteriscBin
cfg.AsteriscServer = validAsteriscOpProgramBin
cfg.AsteriscAbsolutePreState = validAsteriscAbsolutPreState
cfg.AsteriscL2 = validAsteriscL2
cfg.AsteriscNetwork = validAsteriscNetwork
}

func validConfig(traceType TraceType) Config {
cfg := NewConfig(validGameFactoryAddress, validL1EthRpc, validL1BeaconUrl, validDatadir, traceType)
if traceType == TraceTypeCannon || traceType == TraceTypePermissioned {
cfg.CannonBin = validCannonBin
cfg.CannonServer = validCannonOpProgramBin
cfg.CannonAbsolutePreState = validCannonAbsolutPreState
cfg.CannonL2 = validCannonL2
cfg.CannonNetwork = validCannonNetwork
applyValidConfigForCannon(&cfg)
}
if traceType == TraceTypeAsterisc {
cfg.AsteriscBin = validAsteriscBin
cfg.AsteriscServer = validAsteriscOpProgramBin
cfg.AsteriscAbsolutePreState = validAsteriscAbsolutPreState
cfg.AsteriscL2 = validAsteriscL2
cfg.AsteriscNetwork = validAsteriscNetwork
applyValidConfigForAsterisc(&cfg)
}
cfg.RollupRpc = validRollupRpc
return cfg
Expand Down Expand Up @@ -255,3 +263,33 @@ func TestRequireConfigForMultipleTraceTypesForAsterisc(t *testing.T) {
cfg.RollupRpc = ""
require.ErrorIs(t, cfg.Check(), ErrMissingRollupRpc)
}

func TestRequireConfigForMultipleTraceTypesForCannonAndAsterisc(t *testing.T) {
cfg := validConfig(TraceTypeCannon)
applyValidConfigForAsterisc(&cfg)

cfg.TraceTypes = []TraceType{TraceTypeCannon, TraceTypeAsterisc, TraceTypeAlphabet}
// Set all required options and check its valid
cfg.RollupRpc = validRollupRpc
require.NoError(t, cfg.Check())

// Require asterisc specific args
cfg.AsteriscL2 = ""
require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscL2)
cfg.AsteriscL2 = validAsteriscL2

// Require cannon specific args
cfg.CannonBin = ""
require.ErrorIs(t, cfg.Check(), ErrMissingCannonBin)
cfg.CannonBin = validCannonBin

// Require asterisc specific args
cfg.AsteriscAbsolutePreState = ""
require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscAbsolutePreState)
cfg.AsteriscAbsolutePreState = validAsteriscAbsolutPreState

// Require cannon specific args
cfg.AsteriscServer = ""
require.ErrorIs(t, cfg.Check(), ErrMissingAsteriscServer)
cfg.AsteriscServer = validAsteriscOpProgramBin
}

0 comments on commit f8d9d5b

Please sign in to comment.