github.com/ava-labs/avalanchego@v1.11.11/subnets/config_test.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package subnets
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/ava-labs/avalanchego/ids"
    12  	"github.com/ava-labs/avalanchego/snow/consensus/snowball"
    13  	"github.com/ava-labs/avalanchego/utils/set"
    14  )
    15  
    16  var validParameters = snowball.Parameters{
    17  	K:                     1,
    18  	AlphaPreference:       1,
    19  	AlphaConfidence:       1,
    20  	Beta:                  1,
    21  	ConcurrentRepolls:     1,
    22  	OptimalProcessing:     1,
    23  	MaxOutstandingItems:   1,
    24  	MaxItemProcessingTime: 1,
    25  }
    26  
    27  func TestValid(t *testing.T) {
    28  	tests := []struct {
    29  		name        string
    30  		s           Config
    31  		expectedErr error
    32  	}{
    33  		{
    34  			name: "invalid consensus parameters",
    35  			s: Config{
    36  				ConsensusParameters: snowball.Parameters{
    37  					K:               2,
    38  					AlphaPreference: 1,
    39  				},
    40  			},
    41  			expectedErr: snowball.ErrParametersInvalid,
    42  		},
    43  		{
    44  			name: "invalid allowed node IDs",
    45  			s: Config{
    46  				AllowedNodes:        set.Of(ids.GenerateTestNodeID()),
    47  				ValidatorOnly:       false,
    48  				ConsensusParameters: validParameters,
    49  			},
    50  			expectedErr: errAllowedNodesWhenNotValidatorOnly,
    51  		},
    52  		{
    53  			name: "valid",
    54  			s: Config{
    55  				ConsensusParameters: validParameters,
    56  				ValidatorOnly:       false,
    57  			},
    58  			expectedErr: nil,
    59  		},
    60  	}
    61  	for _, tt := range tests {
    62  		t.Run(tt.name, func(t *testing.T) {
    63  			err := tt.s.Valid()
    64  			require.ErrorIs(t, err, tt.expectedErr)
    65  		})
    66  	}
    67  }