package core import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" cfg "github.com/tendermint/tendermint/config" "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/p2p" rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" ) func TestUnsafeDialSeeds(t *testing.T) { sw := p2p.MakeSwitch(cfg.DefaultP2PConfig(), 1, "testing", "123.123.123", func(n int, sw *p2p.Switch) *p2p.Switch { return sw }) err := sw.Start() require.NoError(t, err) t.Cleanup(func() { if err := sw.Stop(); err != nil { t.Error(err) } }) env.Logger = log.TestingLogger() env.P2PPeers = sw testCases := []struct { seeds []string isErr bool }{ {[]string{}, true}, {[]string{"d51fb70907db1c6c2d5237e78379b25cf1a37ab4@127.0.0.1:41198"}, false}, {[]string{"127.0.0.1:41198"}, true}, } for _, tc := range testCases { res, err := UnsafeDialSeeds(&rpctypes.Context{}, tc.seeds) if tc.isErr { assert.Error(t, err) } else { assert.NoError(t, err) assert.NotNil(t, res) } } } func TestUnsafeDialPeers(t *testing.T) { sw := p2p.MakeSwitch(cfg.DefaultP2PConfig(), 1, "testing", "123.123.123", func(n int, sw *p2p.Switch) *p2p.Switch { return sw }) sw.SetAddrBook(&p2p.AddrBookMock{ Addrs: make(map[string]struct{}), OurAddrs: make(map[string]struct{}), PrivateAddrs: make(map[string]struct{}), }) err := sw.Start() require.NoError(t, err) t.Cleanup(func() { if err := sw.Stop(); err != nil { t.Error(err) } }) env.Logger = log.TestingLogger() env.P2PPeers = sw testCases := []struct { peers []string persistence, unconditional, private bool isErr bool }{ {[]string{}, false, false, false, true}, {[]string{"d51fb70907db1c6c2d5237e78379b25cf1a37ab4@127.0.0.1:41198"}, true, true, true, false}, {[]string{"127.0.0.1:41198"}, true, true, false, true}, } for _, tc := range testCases { res, err := UnsafeDialPeers(&rpctypes.Context{}, tc.peers, tc.persistence, tc.unconditional, tc.private) if tc.isErr { assert.Error(t, err) } else { assert.NoError(t, err) assert.NotNil(t, res) } } }