48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
|
package node
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/ethereum/go-ethereum/node"
|
||
|
"github.com/ethereum/go-ethereum/p2p"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestUpdateNodeMetricsPeersCounter(t *testing.T) {
|
||
|
var err error
|
||
|
|
||
|
n, err := node.New(&node.Config{
|
||
|
P2P: p2p.Config{
|
||
|
MaxPeers: 10,
|
||
|
},
|
||
|
})
|
||
|
require.NoError(t, err)
|
||
|
require.NoError(t, n.Start())
|
||
|
defer func() { require.NoError(t, n.Stop()) }()
|
||
|
|
||
|
err = updateNodeMetrics(n, p2p.PeerEventTypeAdd)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, int64(1), nodePeersCounter.Count())
|
||
|
require.Equal(t, int64(10), nodeMaxPeersGauge.Value())
|
||
|
|
||
|
err = updateNodeMetrics(n, p2p.PeerEventTypeAdd)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, int64(2), nodePeersCounter.Count())
|
||
|
|
||
|
// skip other events
|
||
|
err = updateNodeMetrics(n, p2p.PeerEventTypeMsgRecv)
|
||
|
require.NoError(t, err)
|
||
|
err = updateNodeMetrics(n, p2p.PeerEventTypeMsgSend)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, int64(2), nodePeersCounter.Count())
|
||
|
|
||
|
err = updateNodeMetrics(n, p2p.PeerEventTypeDrop)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, int64(1), nodePeersCounter.Count())
|
||
|
|
||
|
n.Server().MaxPeers = 20
|
||
|
err = updateNodeMetrics(n, p2p.PeerEventTypeDrop)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, int64(20), nodeMaxPeersGauge.Value())
|
||
|
}
|