139 lines
2.9 KiB
Go
Raw Normal View History

2025-12-24 16:44:53 +04:00
package storage
2025-10-03 14:28:14 +02:00
import (
2025-10-07 08:34:44 +02:00
"os"
"strings"
2025-10-03 14:28:14 +02:00
"testing"
2025-10-07 15:15:21 +02:00
"time"
2025-10-03 14:28:14 +02:00
)
func TestDebug(t *testing.T) {
2025-12-24 16:44:53 +04:00
storage := newStorageNode(t)
2025-10-03 14:28:14 +02:00
2025-12-24 16:44:53 +04:00
info, err := storage.Debug()
2025-10-03 14:28:14 +02:00
if err != nil {
t.Fatalf("Debug call failed: %v", err)
}
if info.ID == "" {
t.Error("Debug info ID is empty")
}
if info.Spr == "" {
t.Error("Debug info Spr is empty")
}
if len(info.AnnounceAddresses) == 0 {
t.Error("Debug info AnnounceAddresses is empty")
}
}
2025-10-07 08:34:44 +02:00
func TestUpdateLogLevel(t *testing.T) {
2025-12-24 16:44:53 +04:00
tmpFile, err := os.CreateTemp("", "storage-log-*.log")
2025-10-07 08:34:44 +02:00
if err != nil {
t.Fatalf("Failed to create temp log file: %v", err)
}
defer os.Remove(tmpFile.Name())
2025-12-24 16:44:53 +04:00
node := newStorageNode(t, Config{
LogLevel: "INFO",
LogFile: tmpFile.Name(),
LogFormat: LogFormatNoColors,
2025-10-07 08:34:44 +02:00
})
content, err := os.ReadFile(tmpFile.Name())
2025-10-07 08:34:44 +02:00
if err != nil {
t.Fatalf("Failed to read log file: %v", err)
}
if !strings.Contains(string(content), "INF") {
t.Errorf("Log file does not contain INFO statement %s", string(content))
2025-10-07 08:34:44 +02:00
}
err = node.UpdateLogLevel("ERROR")
if err != nil {
t.Fatalf("UpdateLogLevel call failed: %v", err)
}
if err := node.Stop(); err != nil {
2025-12-24 16:44:53 +04:00
t.Fatalf("Failed to stop Logos Storage node: %v", err)
}
// Clear the file
2025-10-07 08:34:44 +02:00
if err := os.WriteFile(tmpFile.Name(), []byte{}, 0644); err != nil {
t.Fatalf("Failed to clear log file: %v", err)
}
err = node.Start()
if err != nil {
2025-12-24 16:44:53 +04:00
t.Fatalf("Failed to start Logos Storage node: %v", err)
2025-10-07 08:34:44 +02:00
}
content, err = os.ReadFile(tmpFile.Name())
if err != nil {
t.Fatalf("Failed to read log file: %v", err)
}
if strings.Contains(string(content), "INF") {
t.Errorf("Log file contains INFO statement after log level update: %s", string(content))
2025-10-07 08:34:44 +02:00
}
}
2025-10-07 15:15:21 +02:00
2025-12-24 16:44:53 +04:00
func TestStoragePeerDebug(t *testing.T) {
var bootstrap, node1, node2 *StorageNode
2025-10-07 15:15:21 +02:00
var err error
2025-12-24 16:44:53 +04:00
bootstrap = newStorageNode(t, Config{
2025-10-27 10:56:32 +01:00
DiscoveryPort: 8092,
2025-10-07 15:15:21 +02:00
})
spr, err := bootstrap.Spr()
if err != nil {
t.Fatalf("Failed to get bootstrap spr: %v", err)
}
bootstrapNodes := []string{spr}
2025-12-24 16:44:53 +04:00
node1 = newStorageNode(t, Config{
2025-10-07 15:15:21 +02:00
DiscoveryPort: 8090,
BootstrapNodes: bootstrapNodes,
})
2025-12-24 16:44:53 +04:00
node2 = newStorageNode(t, Config{
2025-10-07 15:15:21 +02:00
DiscoveryPort: 8091,
BootstrapNodes: bootstrapNodes,
})
peerId, err := node2.PeerId()
if err != nil {
t.Fatal(err)
}
var record PeerRecord
for range 10 {
2025-12-24 16:44:53 +04:00
record, err = node1.StoragePeerDebug(peerId)
2025-10-07 15:15:21 +02:00
if err == nil {
break
}
2025-10-27 10:56:32 +01:00
2025-10-07 15:15:21 +02:00
time.Sleep(1 * time.Second)
}
2025-10-27 10:56:32 +01:00
if err != nil {
2025-12-24 16:44:53 +04:00
t.Fatalf("Logos StoragePeerDebug call failed: %v", err)
2025-10-27 10:56:32 +01:00
}
2025-10-07 15:15:21 +02:00
if record.PeerId == "" {
2025-12-24 16:44:53 +04:00
t.Fatalf("Logos StoragePeerDebug call failed: %v", err)
2025-10-07 15:15:21 +02:00
}
if record.PeerId == "" {
2025-12-24 16:44:53 +04:00
t.Error("Logos StoragePeerDebug info PeerId is empty")
2025-10-07 15:15:21 +02:00
}
if record.SeqNo == 0 {
2025-12-24 16:44:53 +04:00
t.Error("Logos StoragePeerDebug info SeqNo is empty")
2025-10-07 15:15:21 +02:00
}
if len(record.Addresses) == 0 {
2025-12-24 16:44:53 +04:00
t.Error("Logos StoragePeerDebug info Addresses is empty")
2025-10-07 15:15:21 +02:00
}
if record.PeerId != peerId {
2025-12-24 16:44:53 +04:00
t.Errorf("Logos StoragePeerDebug info PeerId (%s) does not match requested PeerId (%s)", record.PeerId, peerId)
2025-10-07 15:15:21 +02:00
}
}