hscontrol/types: silence zerolog by default in tests
Tests were dumping megabytes of zerolog output on failure; silence at init and let individual tests opt in via SetGlobalLevel when they need log-driven assertions. Updates #3157
This commit is contained in:
parent
affaa1a31d
commit
1059c678c4
7 changed files with 66 additions and 156 deletions
|
|
@ -22,7 +22,6 @@ import (
|
|||
"github.com/juanfont/headscale/hscontrol/types/change"
|
||||
"github.com/juanfont/headscale/hscontrol/util"
|
||||
"github.com/puzpuzpuz/xsync/v4"
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"tailscale.com/tailcfg"
|
||||
|
|
@ -473,9 +472,6 @@ func TestProcessBatchedChanges_BundlesChangesPerNode(t *testing.T) {
|
|||
// could process bundles from tick N and tick N+1 concurrently for the same
|
||||
// node, causing out-of-order delivery and races on lastSentPeers.
|
||||
func TestWorkMu_PreventsInterTickRace(t *testing.T) {
|
||||
zerolog.SetGlobalLevel(zerolog.Disabled)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
mc := newMultiChannelNodeConn(1, nil)
|
||||
ch := make(chan *tailcfg.MapResponse, 100)
|
||||
entry := &connectionEntry{
|
||||
|
|
@ -849,9 +845,6 @@ func TestBug3_CleanupOfflineNodes_TOCTOU(t *testing.T) {
|
|||
// BUG: batcher_lockfree.go worker() - no nil check after b.nodes.Load()
|
||||
// FIX: Add nil guard: `exists && nc != nil` in both sync and async paths.
|
||||
func TestBug5_WorkerPanicKillsWorkerPermanently(t *testing.T) {
|
||||
zerolog.SetGlobalLevel(zerolog.Disabled)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 3, 10)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -927,9 +920,6 @@ func TestBug5_WorkerPanicKillsWorkerPermanently(t *testing.T) {
|
|||
// BUG: batcher_lockfree.go:163-166 - Start() has no "already started" check
|
||||
// FIX: Add sync.Once or atomic.Bool to prevent multiple Start() calls.
|
||||
func TestBug6_StartCalledMultipleTimes_GoroutineLeak(t *testing.T) {
|
||||
zerolog.SetGlobalLevel(zerolog.Disabled)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 3, 10)
|
||||
lb.b.workers = 2
|
||||
|
||||
|
|
@ -1042,9 +1032,6 @@ func TestBug7_CleanupOfflineNodes_PendingChangesCleanedStructurally(t *testing.T
|
|||
// (timeouts happen here), then write-lock only to remove failed connections.
|
||||
// The lock is now held only for O(N) pointer copies, not for N*50ms I/O.
|
||||
func TestBug8_SerialTimeoutUnderWriteLock(t *testing.T) {
|
||||
zerolog.SetGlobalLevel(zerolog.Disabled)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
mc := newMultiChannelNodeConn(1, nil)
|
||||
|
||||
// Add 5 stale connections (unbuffered, no reader = will timeout at 50ms each)
|
||||
|
|
@ -1148,9 +1135,6 @@ func TestScale1000_AddToBatch_Broadcast(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 1000, 10)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -1181,9 +1165,6 @@ func TestScale1000_ProcessBatchedWithConcurrentAdd(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 1000, 10)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -1236,9 +1217,6 @@ func TestScale1000_MultiChannelBroadcast(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
const (
|
||||
nodeCount = 1000
|
||||
bufferSize = 5
|
||||
|
|
@ -1339,9 +1317,6 @@ func TestScale1000_ConnectionChurn(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 1000, 20)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -1441,9 +1416,6 @@ func TestScale1000_ConcurrentAddRemove(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 1000, 10)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -1485,9 +1457,6 @@ func TestScale1000_IsConnectedConsistency(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 1000, 10)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -1554,9 +1523,6 @@ func TestScale1000_BroadcastDuringNodeChurn(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 1000, 10)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -1641,9 +1607,6 @@ func TestScale1000_WorkChannelSaturation(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
// Create batcher with SMALL work channel to force saturation
|
||||
b := &Batcher{
|
||||
tick: time.NewTicker(10 * time.Millisecond),
|
||||
|
|
@ -1719,9 +1682,6 @@ func TestScale1000_FullUpdate_AllNodesGetPending(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test in short mode")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
lb := setupLightweightBatcher(t, 1000, 10)
|
||||
defer lb.cleanup()
|
||||
|
||||
|
|
@ -1757,9 +1717,6 @@ func TestScale1000_AllToAll_FullPipeline(t *testing.T) {
|
|||
t.Skip("skipping 1000-node test with race detector (bcrypt setup too slow)")
|
||||
}
|
||||
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
defer zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
|
||||
t.Logf("setting up 1000-node test environment (this may take a minute)...")
|
||||
|
||||
testData, cleanup := setupBatcherWithTestData(t, NewBatcherAndMapper, 1, 1000, 200)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue