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

View File

@ -1,13 +1,11 @@
package testlibs
import (
"errors"
utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities"
"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))
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
@ -21,18 +19,11 @@ func (wrapper *WakuNodeWrapper) Wrappers_RelaySubscribe(pubsubTopic string) erro
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))
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))
if err := utilities.CheckWakuNodeNull(nil, wrapper.WakuNode); err != nil {
@ -46,17 +37,6 @@ func (wrapper *WakuNodeWrapper) Wrappers_RelayUnsubscribe(pubsubTopic string) er
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))
return nil
}

View File

@ -18,13 +18,13 @@ func TestBasicWakuNodes(t *testing.T) {
nodeCfg.Relay = true
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")
// Use defer to ensure proper cleanup
defer func() {
utilities.Debug("Stopping and destroying Node")
node.Wrappers_StopAndDestroy()
node.StopAndDestroy()
}()
utilities.Debug("Successfully created the WakuNodeWrapper")

View File

@ -16,24 +16,24 @@ func TestDisconnectPeerNodes(t *testing.T) {
require.NoError(t, err)
// Create Node A
nodeA, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("nodeA"))
nodeA, err := testlibs.StartWakuNode(nil, logger.Named("nodeA"))
require.NoError(t, err)
defer nodeA.Wrappers_StopAndDestroy()
defer nodeA.StopAndDestroy()
// Create Node B
nodeB, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("nodeB"))
nodeB, err := testlibs.StartWakuNode(nil, logger.Named("nodeB"))
require.NoError(t, err)
defer nodeB.Wrappers_StopAndDestroy()
defer nodeB.StopAndDestroy()
// Connect Node A to Node B
err = nodeA.Wrappers_ConnectPeer(nodeB)
err = nodeA.ConnectPeer(nodeB)
require.NoError(t, err, "failed to connect nodes")
// Wait for 3 seconds
time.Sleep(3 * time.Second)
// Disconnect Node A from Node B
err = nodeA.Wrappers_DisconnectPeer(nodeB)
err = nodeA.DisconnectPeer(nodeB)
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("Create 3 nodes")
node1, err := testlibs.Wrappers_StartWakuNode(nil, logger.Named("Node1"))
node1, err := testlibs.StartWakuNode(nil, logger.Named("Node1"))
require.NoError(t, err)
defer func() {
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)
defer func() {
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)
defer func() {
utilities.Debug("Stopping and destroying Node 3")
node3.Wrappers_StopAndDestroy()
node3.StopAndDestroy()
}()
utilities.Debug("Connecting Node 2 to Node 1")
err = node2.Wrappers_ConnectPeer(node1)
err = node2.ConnectPeer(node1)
require.NoError(t, err)
utilities.Debug("Connecting Node 3 to Node 1")
err = node3.Wrappers_ConnectPeer(node1)
err = node3.ConnectPeer(node1)
require.NoError(t, err)
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
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)
defer func() {
utilities.Debug("Stopping and destroying the Waku node")
node.Wrappers_StopAndDestroy()
node.StopAndDestroy()
}()
defaultPubsubTopic := utilities.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))
numPeersBefore, err := node.Wrappers_GetNumConnectedRelayPeers(defaultPubsubTopic)
numPeersBefore, err := node.GetNumConnectedRelayPeers(defaultPubsubTopic)
require.NoError(t, err)
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))
err = node.Wrappers_RelaySubscribe(defaultPubsubTopic)
err = node.RelaySubscribe(defaultPubsubTopic)
require.NoError(t, err)
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)
utilities.Debug("Number of connected relay peers after subscription", zap.Int("count", numPeersAfter))