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  }