Fix review points

This commit is contained in:
aya 2025-02-03 13:30:57 +02:00
parent b81b4370af
commit a64639f39b
5 changed files with 41 additions and 60 deletions

View File

@ -5,19 +5,19 @@ import (
"errors" "errors"
"github.com/libp2p/go-libp2p/core/peer" "github.com/libp2p/go-libp2p/core/peer"
utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities" utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities"
"github.com/waku-org/waku-go-bindings/waku" "github.com/waku-org/waku-go-bindings/waku"
"go.uber.org/zap" "go.uber.org/zap"
) )
type WakuNodeWrapper struct { type WakuNodeWrapper struct {
*waku.WakuNode *waku.WakuNode
config *waku.WakuConfig
} }
// This function create waku node from config and start it // This function create waku node from config and start it
func Wrappers_StartWakuNode(customCfg *waku.WakuConfig, logger *zap.Logger) (*WakuNodeWrapper, error) { func StartWakuNode(customCfg *waku.WakuConfig, logger *zap.Logger) (*WakuNodeWrapper, error) {
var nodeCfg waku.WakuConfig var nodeCfg waku.WakuConfig
if customCfg == nil { if customCfg == nil {
@ -29,15 +29,16 @@ func Wrappers_StartWakuNode(customCfg *waku.WakuConfig, logger *zap.Logger) (*Wa
nodeCfg.Discv5UdpPort = utilities.GenerateUniquePort() nodeCfg.Discv5UdpPort = utilities.GenerateUniquePort()
nodeCfg.TcpPort = utilities.GenerateUniquePort() nodeCfg.TcpPort = utilities.GenerateUniquePort()
utilities.Debug("Create node with default config") utilities.Debug("Create node successfully")
node, err := waku.NewWakuNode(&nodeCfg, logger) node, err := waku.NewWakuNode(&nodeCfg, logger)
if err != nil { if err != nil {
utilities.Error("Can't create node") utilities.Error("Can't create node", zap.Error(err))
return nil, err return nil, err
} }
utilities.Debug("Attempting to start WakuNode") utilities.Debug("Attempting to start WakuNode")
wrapper := &WakuNodeWrapper{WakuNode: node} wrapper := &WakuNodeWrapper{WakuNode: node, config: &nodeCfg} // Store config in wrapper
if err := utilities.CheckWakuNodeNull(logger, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(logger, wrapper.WakuNode); err != nil {
utilities.Error("Failed to start WakuNode", zap.Error(err)) utilities.Error("Failed to start WakuNode", zap.Error(err))
return nil, err return nil, err
@ -54,7 +55,7 @@ func Wrappers_StartWakuNode(customCfg *waku.WakuConfig, logger *zap.Logger) (*Wa
} }
// Stops the WakuNode. // Stops the WakuNode.
func (node *WakuNodeWrapper) Wrappers_Stop() error { func (node *WakuNodeWrapper) Stop() error {
if err := utilities.CheckWakuNodeNull(nil, node.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, node.WakuNode); err != nil {
utilities.Error("Failed to stop WakuNode", zap.Error(err)) utilities.Error("Failed to stop WakuNode", zap.Error(err))
return err return err
@ -72,7 +73,7 @@ func (node *WakuNodeWrapper) Wrappers_Stop() error {
} }
// Destroys the WakuNode. // Destroys the WakuNode.
func (node *WakuNodeWrapper) Wrappers_Destroy() error { func (node *WakuNodeWrapper) Destroy() error {
if err := utilities.CheckWakuNodeNull(nil, node.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, node.WakuNode); err != nil {
utilities.Error("Failed to destroy WakuNode", zap.Error(err)) utilities.Error("Failed to destroy WakuNode", zap.Error(err))
return err return err
@ -89,7 +90,7 @@ func (node *WakuNodeWrapper) Wrappers_Destroy() error {
return nil return nil
} }
func (wrapper *WakuNodeWrapper) Wrappers_StopAndDestroy() error { func (wrapper *WakuNodeWrapper) StopAndDestroy() error {
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
utilities.Error("Failed to stop or destroy WakuNode", zap.Error(err)) utilities.Error("Failed to stop or destroy WakuNode", zap.Error(err))
return err return err
@ -113,7 +114,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_StopAndDestroy() error {
return nil return nil
} }
func (wrapper *WakuNodeWrapper) Wrappers_GetConnectedPeers() ([]peer.ID, error) { func (wrapper *WakuNodeWrapper) GetConnectedPeers() ([]peer.ID, error) {
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
utilities.Error("Cannot proceed; node is nil", zap.Error(err)) utilities.Error("Cannot proceed; node is nil", zap.Error(err))
return nil, err return nil, err
@ -139,8 +140,8 @@ func (wrapper *WakuNodeWrapper) Wrappers_GetConnectedPeers() ([]peer.ID, error)
return peers, nil return peers, nil
} }
func (wrapper *WakuNodeWrapper) Wrappers_GetNumConnectedRelayPeers(optPubsubTopic ...string) (int, error) { func (wrapper *WakuNodeWrapper) GetNumConnectedRelayPeers(optPubsubTopic ...string) (int, error) {
utilities.Debug("Wrappers_GetNumConnectedRelayPeers called") utilities.Debug("GetNumConnectedRelayPeers called")
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
utilities.Error("Cannot proceed; node is nil", zap.Error(err)) utilities.Error("Cannot proceed; node is nil", zap.Error(err))
@ -159,7 +160,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_GetNumConnectedRelayPeers(optPubsubTopi
return numPeers, nil return numPeers, nil
} }
func (wrapper *WakuNodeWrapper) Wrappers_ConnectPeer(targetNode *WakuNodeWrapper) error { func (wrapper *WakuNodeWrapper) ConnectPeer(targetNode *WakuNodeWrapper) error {
utilities.Debug("Connect node to peer") utilities.Debug("Connect node to peer")
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
@ -179,7 +180,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_ConnectPeer(targetNode *WakuNodeWrapper
utilities.Debug("Get connected peers before attempting to connect") utilities.Debug("Get connected peers before attempting to connect")
connectedPeersBefore, err := wrapper.Wrappers_GetConnectedPeers() connectedPeersBefore, err := wrapper.GetConnectedPeers()
if err != nil { if err != nil {
utilities.Debug("Could not fetch connected peers before connecting (might be none yet)", zap.Error(err)) utilities.Debug("Could not fetch connected peers before connecting (might be none yet)", zap.Error(err))
} else { } else {
@ -204,7 +205,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_ConnectPeer(targetNode *WakuNodeWrapper
} }
utilities.Debug("Get connected peers after attempting to connect") utilities.Debug("Get connected peers after attempting to connect")
connectedPeersAfter, err := wrapper.Wrappers_GetConnectedPeers() connectedPeersAfter, err := wrapper.GetConnectedPeers()
if err != nil { if err != nil {
utilities.Error("Failed to get connected peers after connecting", zap.Error(err)) utilities.Error("Failed to get connected peers after connecting", zap.Error(err))
return err return err
@ -231,7 +232,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_ConnectPeer(targetNode *WakuNodeWrapper
return nil return nil
} }
func (wrapper *WakuNodeWrapper) Wrappers_DisconnectPeer(target *WakuNodeWrapper) error { func (wrapper *WakuNodeWrapper) DisconnectPeer(target *WakuNodeWrapper) error {
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
utilities.Error("Cannot call Disconnect; caller node is nil", zap.Error(err)) utilities.Error("Cannot call Disconnect; caller node is nil", zap.Error(err))
@ -250,7 +251,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_DisconnectPeer(target *WakuNodeWrapper)
return err return err
} }
connectedPeers, err := wrapper.Wrappers_GetConnectedPeers() connectedPeers, err := wrapper.GetConnectedPeers()
if err != nil { if err != nil {
utilities.Error("Failed to get connected peers", zap.Error(err)) utilities.Error("Failed to get connected peers", zap.Error(err))
return err return err

View File

@ -1,13 +1,11 @@
package testlibs package testlibs
import ( import (
"errors"
utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities" utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities"
"go.uber.org/zap" "go.uber.org/zap"
) )
func (wrapper *WakuNodeWrapper) Wrappers_RelaySubscribe(pubsubTopic string) error { func (wrapper *WakuNodeWrapper) Relay_Subscribe(pubsubTopic string) error {
utilities.Debug("Attempting to subscribe to relay topic", zap.String("topic", pubsubTopic)) utilities.Debug("Attempting to subscribe to relay topic", zap.String("topic", pubsubTopic))
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
@ -21,18 +19,11 @@ func (wrapper *WakuNodeWrapper) Wrappers_RelaySubscribe(pubsubTopic string) erro
return err return err
} }
// Ensure the subscription happened by checking the number of connected relay peers
numRelayPeers, err := wrapper.Wrappers_GetNumConnectedRelayPeers(pubsubTopic)
if err != nil || numRelayPeers == 0 {
utilities.Error("Subscription verification failed: no connected relay peers found", zap.Error(err))
return errors.New("subscription verification failed: no connected relay peers")
}
utilities.Debug("Successfully subscribed to relay topic", zap.String("topic", pubsubTopic)) utilities.Debug("Successfully subscribed to relay topic", zap.String("topic", pubsubTopic))
return nil return nil
} }
func (wrapper *WakuNodeWrapper) Wrappers_RelayUnsubscribe(pubsubTopic string) error { func (wrapper *WakuNodeWrapper) Relay_Unsubscribe(pubsubTopic string) error {
utilities.Debug("Attempting to unsubscribe from relay topic", zap.String("topic", pubsubTopic)) utilities.Debug("Attempting to unsubscribe from relay topic", zap.String("topic", pubsubTopic))
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil { if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
@ -46,17 +37,6 @@ func (wrapper *WakuNodeWrapper) Wrappers_RelayUnsubscribe(pubsubTopic string) er
return err return err
} }
// Ensure the unsubscription happened by verifying the relay peers count
numRelayPeers, err := wrapper.Wrappers_GetNumConnectedRelayPeers(pubsubTopic)
if err != nil {
utilities.Error("Failed to verify unsubscription from relay topic", zap.Error(err))
return err
}
if numRelayPeers > 0 {
utilities.Error("Unsubscription verification failed: relay peers still connected", zap.Int("relayPeers", numRelayPeers))
return errors.New("unsubscription verification failed: relay peers still connected")
}
utilities.Debug("Successfully unsubscribed from relay topic", zap.String("topic", pubsubTopic)) utilities.Debug("Successfully unsubscribed from relay topic", zap.String("topic", pubsubTopic))
return nil return nil
} }

View File

@ -18,13 +18,13 @@ func TestBasicWakuNodes(t *testing.T) {
nodeCfg.Relay = true nodeCfg.Relay = true
utilities.Debug("Starting the WakuNodeWrapper") utilities.Debug("Starting the WakuNodeWrapper")
node, err := testlibs.Wrappers_StartWakuNode(&nodeCfg, logger.Named("node")) node, err := testlibs.StartWakuNode(&nodeCfg, logger.Named("node"))
require.NoError(t, err, "Failed to create the WakuNodeWrapper") require.NoError(t, err, "Failed to create the WakuNodeWrapper")
// Use defer to ensure proper cleanup // Use defer to ensure proper cleanup
defer func() { defer func() {
utilities.Debug("Stopping and destroying Node") utilities.Debug("Stopping and destroying Node")
node.Wrappers_StopAndDestroy() node.StopAndDestroy()
}() }()
utilities.Debug("Successfully created the WakuNodeWrapper") utilities.Debug("Successfully created the WakuNodeWrapper")

View File

@ -16,24 +16,24 @@ func TestDisconnectPeerNodes(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
// Create Node A // Create Node A
nodeA, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("nodeA")) nodeA, err := testlibs.StartWakuNode(nil, logger.Named("nodeA"))
require.NoError(t, err) require.NoError(t, err)
defer nodeA.Wrappers_StopAndDestroy() defer nodeA.StopAndDestroy()
// Create Node B // Create Node B
nodeB, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("nodeB")) nodeB, err := testlibs.StartWakuNode(nil, logger.Named("nodeB"))
require.NoError(t, err) require.NoError(t, err)
defer nodeB.Wrappers_StopAndDestroy() defer nodeB.StopAndDestroy()
// Connect Node A to Node B // Connect Node A to Node B
err = nodeA.Wrappers_ConnectPeer(nodeB) err = nodeA.ConnectPeer(nodeB)
require.NoError(t, err, "failed to connect nodes") require.NoError(t, err, "failed to connect nodes")
// Wait for 3 seconds // Wait for 3 seconds
time.Sleep(3 * time.Second) time.Sleep(3 * time.Second)
// Disconnect Node A from Node B // Disconnect Node A from Node B
err = nodeA.Wrappers_DisconnectPeer(nodeB) err = nodeA.DisconnectPeer(nodeB)
require.NoError(t, err, "failed to disconnect nodes") require.NoError(t, err, "failed to disconnect nodes")
} }
@ -43,33 +43,33 @@ func TestConnectMultipleNodesToSingleNode(t *testing.T) {
utilities.Debug("Starting test to connect multiple nodes to a single node") utilities.Debug("Starting test to connect multiple nodes to a single node")
utilities.Debug("Create 3 nodes") utilities.Debug("Create 3 nodes")
node1, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("Node1")) node1, err := testlibs.StartWakuNode(nil, logger.Named("Node1"))
require.NoError(t, err) require.NoError(t, err)
defer func() { defer func() {
utilities.Debug("Stopping and destroying Node 1") utilities.Debug("Stopping and destroying Node 1")
node1.Wrappers_StopAndDestroy() node1.StopAndDestroy()
}() }()
node2, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("Node2")) node2, err := testlibs.StartWakuNode(nil, logger.Named("Node2"))
require.NoError(t, err) require.NoError(t, err)
defer func() { defer func() {
utilities.Debug("Stopping and destroying Node 2") utilities.Debug("Stopping and destroying Node 2")
node2.Wrappers_StopAndDestroy() node2.StopAndDestroy()
}() }()
node3, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("Node3")) node3, err := testlibs.StartWakuNode(nil, logger.Named("Node3"))
require.NoError(t, err) require.NoError(t, err)
defer func() { defer func() {
utilities.Debug("Stopping and destroying Node 3") utilities.Debug("Stopping and destroying Node 3")
node3.Wrappers_StopAndDestroy() node3.StopAndDestroy()
}() }()
utilities.Debug("Connecting Node 2 to Node 1") utilities.Debug("Connecting Node 2 to Node 1")
err = node2.Wrappers_ConnectPeer(node1) err = node2.ConnectPeer(node1)
require.NoError(t, err) require.NoError(t, err)
utilities.Debug("Connecting Node 3 to Node 1") utilities.Debug("Connecting Node 3 to Node 1")
err = node3.Wrappers_ConnectPeer(node1) err = node3.ConnectPeer(node1)
require.NoError(t, err) require.NoError(t, err)
utilities.Debug("Test completed successfully: multiple nodes connected to a single node") utilities.Debug("Test completed successfully: multiple nodes connected to a single node")

View File

@ -20,27 +20,27 @@ func TestRelaySubscribeToDefaultTopic(t *testing.T) {
wakuConfig.Relay = true wakuConfig.Relay = true
utilities.Debug("Creating a Waku node with relay enabled") utilities.Debug("Creating a Waku node with relay enabled")
node, err := testlibs.Wrappers_StartWakuNode(&wakuConfig, logger.Named("TestNode")) node, err := testlibs.StartWakuNode(&wakuConfig, logger.Named("TestNode"))
require.NoError(t, err) require.NoError(t, err)
defer func() { defer func() {
utilities.Debug("Stopping and destroying the Waku node") utilities.Debug("Stopping and destroying the Waku node")
node.Wrappers_StopAndDestroy() node.StopAndDestroy()
}() }()
defaultPubsubTopic := utilities.DefaultPubsubTopic defaultPubsubTopic := utilities.DefaultPubsubTopic
utilities.Debug("Default pubsub topic retrieved", zap.String("topic", defaultPubsubTopic)) utilities.Debug("Default pubsub topic retrieved", zap.String("topic", defaultPubsubTopic))
utilities.Debug("Fetching number of connected relay peers before subscription", zap.String("topic", defaultPubsubTopic)) utilities.Debug("Fetching number of connected relay peers before subscription", zap.String("topic", defaultPubsubTopic))
numPeersBefore, err := node.Wrappers_GetNumConnectedRelayPeers(defaultPubsubTopic) numPeersBefore, err := node.GetNumConnectedRelayPeers(defaultPubsubTopic)
require.NoError(t, err) require.NoError(t, err)
utilities.Debug("Number of connected relay peers before subscription", zap.Int("count", numPeersBefore)) utilities.Debug("Number of connected relay peers before subscription", zap.Int("count", numPeersBefore))
utilities.Debug("Attempting to subscribe to the default pubsub topic", zap.String("topic", defaultPubsubTopic)) utilities.Debug("Attempting to subscribe to the default pubsub topic", zap.String("topic", defaultPubsubTopic))
err = node.Wrappers_RelaySubscribe(defaultPubsubTopic) err = node.RelaySubscribe(defaultPubsubTopic)
require.NoError(t, err) require.NoError(t, err)
utilities.Debug("Fetching number of connected relay peers after subscription", zap.String("topic", defaultPubsubTopic)) utilities.Debug("Fetching number of connected relay peers after subscription", zap.String("topic", defaultPubsubTopic))
numPeersAfter, err := node.Wrappers_GetNumConnectedRelayPeers(defaultPubsubTopic) numPeersAfter, err := node.GetNumConnectedRelayPeers(defaultPubsubTopic)
require.NoError(t, err) require.NoError(t, err)
utilities.Debug("Number of connected relay peers after subscription", zap.Int("count", numPeersAfter)) utilities.Debug("Number of connected relay peers after subscription", zap.Int("count", numPeersAfter))