mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-01-17 05:03:09 +00:00
Add basic test new wrappers
This commit is contained in:
parent
80670e54f5
commit
8ccbabd7a4
@ -1,42 +1,92 @@
|
||||
package testlibs
|
||||
|
||||
import (
|
||||
"errors"
|
||||
utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities"
|
||||
"github.com/waku-org/waku-go-bindings/waku"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func Wrappers_CreateWakuNode(customConfig *waku.WakuConfig, logger *zap.Logger) (*waku.WakuNode, error) {
|
||||
type WakuNodeWrapper struct {
|
||||
*waku.WakuNode
|
||||
}
|
||||
|
||||
config := *DefaultWakuConfig
|
||||
config.Discv5UdpPort = GenerateUniquePort()
|
||||
config.TcpPort = GenerateUniquePort()
|
||||
func Wrappers_CreateWakuNode(customCfg *waku.WakuConfig, logger *zap.Logger) (*waku.WakuNode, error) {
|
||||
|
||||
if customConfig != nil {
|
||||
if customConfig.Relay {
|
||||
config.Relay = customConfig.Relay
|
||||
}
|
||||
if customConfig.LogLevel != "" {
|
||||
config.LogLevel = customConfig.LogLevel
|
||||
}
|
||||
if customConfig.Discv5Discovery {
|
||||
config.Discv5Discovery = customConfig.Discv5Discovery
|
||||
}
|
||||
if customConfig.ClusterID != 0 {
|
||||
config.ClusterID = customConfig.ClusterID
|
||||
}
|
||||
if len(customConfig.Shards) > 0 {
|
||||
config.Shards = customConfig.Shards
|
||||
}
|
||||
if customConfig.PeerExchange {
|
||||
config.PeerExchange = customConfig.PeerExchange
|
||||
}
|
||||
var nodeCfg waku.WakuConfig
|
||||
|
||||
|
||||
if customCfg == nil {
|
||||
nodeCfg = *utilities.DefaultWakuConfig
|
||||
} else {
|
||||
nodeCfg = *customCfg
|
||||
}
|
||||
|
||||
node, err := waku.NewWakuNode(&config, logger)
|
||||
nodeCfg.Discv5UdpPort = utilities.GenerateUniquePort()
|
||||
nodeCfg.TcpPort = utilities.GenerateUniquePort()
|
||||
|
||||
utilities.Debug("Create node with default config")
|
||||
node, err := waku.NewWakuNode(&nodeCfg, logger)
|
||||
if err != nil {
|
||||
utilities.Error("Can't create node")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return node, nil
|
||||
}
|
||||
|
||||
func (node *WakuNodeWrapper) Wrappers_Start() error {
|
||||
if node== nil || node.WakuNode == nil {
|
||||
err := errors.New("WakuNode instance is nil")
|
||||
utilities.Error("Failed to start WakuNode", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
utilities.Debug("Attempting to start WakuNode")
|
||||
err := node.WakuNode.Start()
|
||||
if err != nil {
|
||||
utilities.Error("Failed to start WakuNode", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
utilities.Debug("Successfully started WakuNode")
|
||||
return nil
|
||||
}
|
||||
|
||||
// Stops the WakuNode instance.
|
||||
func (node*WakuNodeWrapper) Wrappers_Stop() error {
|
||||
if node== nil || node.WakuNode == nil {
|
||||
err := errors.New("WakuNode instance is nil")
|
||||
utilities.Error("Failed to stop WakuNode", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
utilities.Debug("Attempting to stop WakuNode")
|
||||
err := node.WakuNode.Stop()
|
||||
if err != nil {
|
||||
utilities.Error("Failed to stop WakuNode", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
utilities.Debug("Successfully stopped WakuNode")
|
||||
return nil
|
||||
}
|
||||
|
||||
// Destroys the WakuNode instance.
|
||||
func (node*WakuNodeWrapper) Wrappers_Destroy() error {
|
||||
if node== nil || node.WakuNode == nil {
|
||||
err := errors.New("WakuNode instance is nil")
|
||||
utilities.Error("Failed to destroy WakuNode", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
utilities.Debug("Attempting to destroy WakuNode")
|
||||
err := node.WakuNode.Destroy()
|
||||
if err != nil {
|
||||
utilities.Error("Failed to destroy WakuNode", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
utilities.Debug("Successfully destroyed WakuNode")
|
||||
return nil
|
||||
}
|
||||
|
||||
48
testlibs/utilities/logging.go
Normal file
48
testlibs/utilities/logging.go
Normal file
@ -0,0 +1,48 @@
|
||||
package utilities
|
||||
|
||||
import (
|
||||
"go.uber.org/zap"
|
||||
|
||||
)
|
||||
|
||||
var devLogger *zap.Logger
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
devLogger, err = zap.NewDevelopment()
|
||||
if err != nil {
|
||||
panic("Failed to create development logger: " + err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func Debug(msg string, fields ...zap.Field) {
|
||||
devLogger.Debug(msg, fields...)
|
||||
}
|
||||
|
||||
func Info(msg string, fields ...zap.Field) {
|
||||
devLogger.Info(msg, fields...)
|
||||
}
|
||||
|
||||
func Warn(msg string, fields ...zap.Field) {
|
||||
devLogger.Warn(msg, fields...)
|
||||
}
|
||||
|
||||
func Error(msg string, fields ...zap.Field) {
|
||||
devLogger.Error(msg, fields...)
|
||||
}
|
||||
|
||||
func DPanic(msg string, fields ...zap.Field) {
|
||||
devLogger.DPanic(msg, fields...)
|
||||
}
|
||||
|
||||
func Panic(msg string, fields ...zap.Field) {
|
||||
devLogger.Panic(msg, fields...)
|
||||
}
|
||||
|
||||
func Fatal(msg string, fields ...zap.Field) {
|
||||
devLogger.Fatal(msg, fields...)
|
||||
}
|
||||
|
||||
func Sync() {
|
||||
_ = devLogger.Sync()
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package testlibs
|
||||
package utilities
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
@ -23,8 +23,14 @@ var DefaultWakuConfig = &waku.WakuConfig{
|
||||
ClusterID: 16,
|
||||
Shards: []uint16{64},
|
||||
PeerExchange: false,
|
||||
Store: false,
|
||||
Filter: false,
|
||||
Lightpush: false,
|
||||
}
|
||||
|
||||
// WakuConfigOption is a function that applies a change to a WakuConfig.
|
||||
type WakuConfigOption func(*waku.WakuConfig)
|
||||
|
||||
func GenerateUniquePort() int {
|
||||
rng := rand.New(rand.NewSource(time.Now().UnixNano())) // Local RNG instance
|
||||
|
||||
@ -2,31 +2,63 @@ package waku_go_tests
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities"
|
||||
testlibs "github.com/waku-org/waku-go-bindings/testlibs/src"
|
||||
"go.uber.org/zap"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestCreateTwoWakuNodes(t *testing.T) {
|
||||
logger, _ := zap.NewDevelopment()
|
||||
func TestBasicWakuNodes(t *testing.T) {
|
||||
|
||||
utilities.Debug("Create logger isntance")
|
||||
logger, err := zap.NewDevelopment()
|
||||
defaultConfig := *utilities.DefaultWakuConfig
|
||||
|
||||
node1, err := testlibs.Wrappers_CreateWakuNode(nil, logger)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create node1: %v", err)
|
||||
}
|
||||
|
||||
utilities.Debug("Creating the first WakuNodeWrapper")
|
||||
node1, err := testlibs.Wrappers_CreateWakuNode(&defaultConfig, logger)
|
||||
require.NoError(t, err, "Failed to create the first WakuNodeWrapper")
|
||||
utilities.Debug("Successfully created the first WakuNodeWrapper")
|
||||
|
||||
node2, err := testlibs.Wrappers_CreateWakuNode(nil, logger)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create node2: %v", err)
|
||||
}
|
||||
|
||||
if err := node1.Start(); err != nil {
|
||||
t.Fatalf("Failed to start node1: %v", err)
|
||||
}
|
||||
if err := node2.Start(); err != nil {
|
||||
t.Fatalf("Failed to start node2: %v", err)
|
||||
}
|
||||
utilities.Debug("Creating the second WakuNodeWrapper")
|
||||
node2, err := testlibs.Wrappers_CreateWakuNode(&defaultConfig, logger)
|
||||
require.NoError(t, err, "Failed to create the second WakuNodeWrapper")
|
||||
utilities.Debug("Successfully created the second WakuNodeWrapper")
|
||||
|
||||
node1.Stop()
|
||||
node2.Stop()
|
||||
|
||||
utilities.Debug("Starting the first WakuNodeWrapper")
|
||||
err =
|
||||
require.NoError(t, err, "Failed to start the first WakuNodeWrapper")
|
||||
utilities.Debug("Successfully started the first WakuNodeWrapper")
|
||||
|
||||
|
||||
utilities.Debug("Starting the second WakuNodeWrapper")
|
||||
err = node2.Wrappers_Start()
|
||||
require.NoError(t, err, "Failed to start the second WakuNodeWrapper")
|
||||
utilities.Debug("Successfully started the second WakuNodeWrapper")
|
||||
|
||||
|
||||
utilities.Debug("Stopping the first WakuNodeWrapper")
|
||||
err = node1.Wrappers_Stop()
|
||||
require.NoError(t, err, "Failed to stop the first WakuNodeWrapper")
|
||||
utilities.Debug("Successfully stopped the first WakuNodeWrapper")
|
||||
|
||||
|
||||
utilities.Debug("Stopping the second WakuNodeWrapper")
|
||||
err = node2.Wrappers_Stop()
|
||||
require.NoError(t, err, "Failed to stop the second WakuNodeWrapper")
|
||||
utilities.Debug("Successfully stopped the second WakuNodeWrapper")
|
||||
|
||||
|
||||
utilities.Debug("Destroying the first WakuNodeWrapper")
|
||||
err = node1.Wrappers_Destroy()
|
||||
require.NoError(t, err, "Failed to destroy the first WakuNodeWrapper")
|
||||
utilities.Debug("Successfully destroyed the first WakuNodeWrapper")
|
||||
|
||||
|
||||
utilities.Debug("Destroying the second WakuNodeWrapper")
|
||||
err = node2.Wrappers_Destroy()
|
||||
require.NoError(t, err, "Failed to destroy the second WakuNodeWrapper")
|
||||
utilities.Debug("Successfully destroyed the second WakuNodeWrapper")
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user