mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-01-27 18:03:10 +00:00
Adding wrappers and new test
This commit is contained in:
parent
d517abc07b
commit
80670e54f5
42
testlibs/src/testing-wrappers.go
Normal file
42
testlibs/src/testing-wrappers.go
Normal file
@ -0,0 +1,42 @@
|
||||
package testlibs
|
||||
|
||||
import (
|
||||
"github.com/waku-org/waku-go-bindings/waku"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func Wrappers_CreateWakuNode(customConfig *waku.WakuConfig, logger *zap.Logger) (*waku.WakuNode, error) {
|
||||
|
||||
config := *DefaultWakuConfig
|
||||
config.Discv5UdpPort = GenerateUniquePort()
|
||||
config.TcpPort = GenerateUniquePort()
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
node, err := waku.NewWakuNode(&config, logger)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return node, nil
|
||||
}
|
||||
42
testlibs/src/utils.go
Normal file
42
testlibs/src/utils.go
Normal file
@ -0,0 +1,42 @@
|
||||
package testlibs
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/waku-org/waku-go-bindings/waku"
|
||||
)
|
||||
|
||||
var (
|
||||
MinPort = 1024 // Minimum allowable port (exported)
|
||||
MaxPort = 65535 // Maximum allowable port (exported)
|
||||
usedPorts = make(map[int]bool) // Tracks used ports (internal to package)
|
||||
portsMutex sync.Mutex // Ensures thread-safe access to usedPorts
|
||||
)
|
||||
|
||||
// Default configuration values
|
||||
var DefaultWakuConfig = &waku.WakuConfig{
|
||||
Relay: false,
|
||||
LogLevel: "DEBUG",
|
||||
Discv5Discovery: true,
|
||||
ClusterID: 16,
|
||||
Shards: []uint16{64},
|
||||
PeerExchange: false,
|
||||
}
|
||||
|
||||
func GenerateUniquePort() int {
|
||||
rng := rand.New(rand.NewSource(time.Now().UnixNano())) // Local RNG instance
|
||||
|
||||
for {
|
||||
port := rng.Intn(MaxPort-MinPort+1) + MinPort
|
||||
|
||||
portsMutex.Lock()
|
||||
if !usedPorts[port] {
|
||||
usedPorts[port] = true
|
||||
portsMutex.Unlock()
|
||||
return port
|
||||
}
|
||||
portsMutex.Unlock()
|
||||
}
|
||||
}
|
||||
32
testlibs/waku-go-tests/Nodes_basic_test.go
Normal file
32
testlibs/waku-go-tests/Nodes_basic_test.go
Normal file
@ -0,0 +1,32 @@
|
||||
package waku_go_tests
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
testlibs "github.com/waku-org/waku-go-bindings/testlibs/src"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func TestCreateTwoWakuNodes(t *testing.T) {
|
||||
logger, _ := zap.NewDevelopment()
|
||||
|
||||
node1, err := testlibs.Wrappers_CreateWakuNode(nil, logger)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create node1: %v", err)
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
node1.Stop()
|
||||
node2.Stop()
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user