github.com/ethereum-optimism/optimism@v1.7.2/op-node/node/superchain_test.go (about) 1 package node 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 "golang.org/x/exp/slices" 8 9 "github.com/ethereum/go-ethereum/params" 10 ) 11 12 func TestHaltMaybe(t *testing.T) { 13 haltTest := func(opt string, halts ...params.ProtocolVersionComparison) { 14 t.Run(opt, func(t *testing.T) { 15 for _, h := range []params.ProtocolVersionComparison{ 16 params.AheadMajor, 17 params.OutdatedMajor, 18 params.AheadMinor, 19 params.OutdatedMinor, 20 params.AheadPatch, 21 params.OutdatedPatch, 22 params.AheadPrerelease, 23 params.OutdatedPrerelease, 24 params.Matching, 25 params.DiffVersionType, 26 params.DiffBuild, 27 params.EmptyVersion, 28 } { 29 expectedHalt := slices.Contains(halts, h) 30 gotHalt := haltMaybe(opt, h) 31 require.Equal(t, expectedHalt, gotHalt, "%s %d", opt, h) 32 } 33 }) 34 } 35 haltTest("") 36 haltTest("major", params.OutdatedMajor) 37 haltTest("minor", params.OutdatedMajor, params.OutdatedMinor) 38 haltTest("patch", params.OutdatedMajor, params.OutdatedMinor, params.OutdatedPatch) 39 }