github.com/number571/tendermint@v0.34.11-gost/rpc/core/net_test.go (about)

     1  package core
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	cfg "github.com/number571/tendermint/config"
    10  	"github.com/number571/tendermint/internal/p2p"
    11  	"github.com/number571/tendermint/libs/log"
    12  	rpctypes "github.com/number571/tendermint/rpc/jsonrpc/types"
    13  )
    14  
    15  func TestUnsafeDialSeeds(t *testing.T) {
    16  	sw := p2p.MakeSwitch(cfg.DefaultP2PConfig(), 1, "testing", "123.123.123",
    17  		func(n int, sw *p2p.Switch) *p2p.Switch { return sw }, log.TestingLogger())
    18  	err := sw.Start()
    19  	require.NoError(t, err)
    20  	t.Cleanup(func() {
    21  		if err := sw.Stop(); err != nil {
    22  			t.Error(err)
    23  		}
    24  	})
    25  
    26  	env := &Environment{}
    27  	env.Logger = log.TestingLogger()
    28  	env.P2PPeers = sw
    29  
    30  	testCases := []struct {
    31  		seeds []string
    32  		isErr bool
    33  	}{
    34  		{[]string{}, true},
    35  		{[]string{"d51fb70907db1c6c2d5237e78379b25cf1a37ab4@127.0.0.1:41198"}, false},
    36  		{[]string{"127.0.0.1:41198"}, true},
    37  	}
    38  
    39  	for _, tc := range testCases {
    40  		res, err := env.UnsafeDialSeeds(&rpctypes.Context{}, tc.seeds)
    41  		if tc.isErr {
    42  			assert.Error(t, err)
    43  		} else {
    44  			assert.NoError(t, err)
    45  			assert.NotNil(t, res)
    46  		}
    47  	}
    48  }
    49  
    50  func TestUnsafeDialPeers(t *testing.T) {
    51  	sw := p2p.MakeSwitch(cfg.DefaultP2PConfig(), 1, "testing", "123.123.123",
    52  		func(n int, sw *p2p.Switch) *p2p.Switch { return sw }, log.TestingLogger())
    53  	sw.SetAddrBook(&p2p.AddrBookMock{
    54  		Addrs:        make(map[string]struct{}),
    55  		OurAddrs:     make(map[string]struct{}),
    56  		PrivateAddrs: make(map[string]struct{}),
    57  	})
    58  	err := sw.Start()
    59  	require.NoError(t, err)
    60  	t.Cleanup(func() {
    61  		if err := sw.Stop(); err != nil {
    62  			t.Error(err)
    63  		}
    64  	})
    65  
    66  	env := &Environment{}
    67  	env.Logger = log.TestingLogger()
    68  	env.P2PPeers = sw
    69  
    70  	testCases := []struct {
    71  		peers                               []string
    72  		persistence, unconditional, private bool
    73  		isErr                               bool
    74  	}{
    75  		{[]string{}, false, false, false, true},
    76  		{[]string{"d51fb70907db1c6c2d5237e78379b25cf1a37ab4@127.0.0.1:41198"}, true, true, true, false},
    77  		{[]string{"127.0.0.1:41198"}, true, true, false, true},
    78  	}
    79  
    80  	for _, tc := range testCases {
    81  		res, err := env.UnsafeDialPeers(&rpctypes.Context{}, tc.peers, tc.persistence, tc.unconditional, tc.private)
    82  		if tc.isErr {
    83  			assert.Error(t, err)
    84  		} else {
    85  			assert.NoError(t, err)
    86  			assert.NotNil(t, res)
    87  		}
    88  	}
    89  }