Enhance Peer tests

This commit is contained in:
aya 2025-02-13 11:31:08 +02:00
parent 886357d3ee
commit d108ed15f0
2 changed files with 40 additions and 10 deletions

View File

@ -1422,7 +1422,15 @@ func StartWakuNode(nodeName string, customCfg *WakuConfig) (*WakuNode, error) {
var nodeCfg WakuConfig
if customCfg == nil {
tcpPort, udpPort, err := GetFreePortIfNeeded(0, 0)
if err != nil {
Error("Failed to allocate unique ports: %v", err)
tcpPort, udpPort = 0, 0 // Fallback to OS-assigned ports
}
nodeCfg = DefaultWakuConfig
nodeCfg.TcpPort = tcpPort
nodeCfg.Discv5UdpPort = udpPort
} else {
nodeCfg = *customCfg
}

View File

@ -1,6 +1,7 @@
package waku
import (
"slices"
"testing"
"time"
@ -11,49 +12,59 @@ import (
func TestDisconnectPeerNodes(t *testing.T) {
Debug("Starting TestDisconnectPeerNodes")
// Create Node A
nodeA, err := StartWakuNode("nodeA", nil)
require.NoError(t, err, "Failed to start Node A")
defer nodeA.StopAndDestroy()
// Create Node B
nodeB, err := StartWakuNode("nodeB", nil)
require.NoError(t, err, "Failed to start Node B")
defer nodeB.StopAndDestroy()
// Connect Node A to Node B
Debug("Connecting Node A to Node B")
err = nodeA.ConnectPeer(nodeB)
require.NoError(t, err, "Failed to connect nodes")
// Wait for 3 seconds
Debug("Verifying connection between Node A and Node B")
connectedPeers, err := nodeA.GetConnectedPeers()
require.NoError(t, err, "Failed to get connected peers for Node A")
nodeBPeerID, err := nodeB.PeerID()
require.NoError(t, err, "Failed to get PeerID for Node B")
require.True(t, slices.Contains(connectedPeers, nodeBPeerID), "Node B should be a peer of Node A before disconnection")
time.Sleep(3 * time.Second)
// Disconnect Node A from Node B
Debug("Disconnecting Node A from Node B")
err = nodeA.DisconnectPeer(nodeB)
require.NoError(t, err, "Failed to disconnect nodes")
Debug("Verifying disconnection between Node A and Node B")
connectedPeers, err = nodeA.GetConnectedPeers()
require.NoError(t, err, "Failed to get connected peers for Node A after disconnection")
require.False(t, slices.Contains(connectedPeers, nodeBPeerID), "Node B should no longer be a peer of Node A after disconnection")
Debug("Test completed successfully: Node B was disconnected from Node A")
}
func TestConnectMultipleNodesToSingleNode(t *testing.T) {
Debug("Starting TestConnectMultipleNodesToSingleNode")
Debug("Creating 3 nodes")
node1, err := StartWakuNode("Node1", nil)
Debug("Creating 3 nodes with automatically assigned ports")
node1, err := StartWakuNode("node1", nil)
require.NoError(t, err, "Failed to start Node 1")
defer func() {
Debug("Stopping and destroying Node 1")
node1.StopAndDestroy()
}()
node2, err := StartWakuNode("Node2", nil)
node2, err := StartWakuNode("node2", nil)
require.NoError(t, err, "Failed to start Node 2")
defer func() {
Debug("Stopping and destroying Node 2")
node2.StopAndDestroy()
}()
node3, err := StartWakuNode("Node3", nil)
node3, err := StartWakuNode("node3", nil)
require.NoError(t, err, "Failed to start Node 3")
defer func() {
Debug("Stopping and destroying Node 3")
@ -68,5 +79,16 @@ func TestConnectMultipleNodesToSingleNode(t *testing.T) {
err = node3.ConnectPeer(node1)
require.NoError(t, err, "Failed to connect Node 3 to Node 1")
Debug("Test completed successfully: multiple nodes connected to a single node")
Debug("Verifying connected peers for Node 3")
connectedPeers, err := node3.GetConnectedPeers()
require.NoError(t, err, "Failed to get connected peers for Node 3")
node1PeerID, err := node1.PeerID()
require.NoError(t, err, "Failed to get PeerID for Node 1")
node2PeerID, err := node2.PeerID()
require.NoError(t, err, "Failed to get PeerID for Node 2")
require.True(t, slices.Contains(connectedPeers, node1PeerID), "Node 1 should be a peer of Node 3")
require.True(t, slices.Contains(connectedPeers, node2PeerID), "Node 2 should be a peer of Node 3")
Debug("Test completed successfully: multiple nodes connected to a single node and verified peers")
}