mirror of
https://github.com/lukaszraczylo/graphql-monitoring-proxy.git
synced 2026-06-09 23:59:50 +00:00
cedee416a8
* General improvements and bug fixes. * Improve tests coverage. * fixup! Improve tests coverage. * Update README.md with latest changes. * Fix the uint32 * Resolve issue with race condition for logging. * fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * Fix the test of the rate limiter * Add default ratelimit.json file * Update dependencies. * Significant refactor. * fixup! Significant refactor. * fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025 * fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Merge remote-tracking branch 'origin/main' into improvements-mid-apr-2025
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package libpack_logger
|
|
|
|
import (
|
|
"bytes"
|
|
"sync"
|
|
"testing"
|
|
)
|
|
|
|
// Test_LogConcurrentAccess verifies that the logger correctly handles concurrent access
|
|
// without race conditions
|
|
func TestLogConcurrentAccess(t *testing.T) {
|
|
output := &bytes.Buffer{}
|
|
logger := New().SetOutput(output).SetMinLogLevel(LEVEL_DEBUG)
|
|
|
|
// Number of concurrent goroutines
|
|
numGoroutines := 100
|
|
// Wait group to synchronize goroutines
|
|
var wg sync.WaitGroup
|
|
wg.Add(numGoroutines)
|
|
|
|
// Launch multiple goroutines to log concurrently
|
|
for i := 0; i < numGoroutines; i++ {
|
|
go func(id int) {
|
|
defer wg.Done()
|
|
msg := &LogMessage{
|
|
Message: "concurrent log test",
|
|
Pairs: map[string]interface{}{
|
|
"goroutine_id": id,
|
|
},
|
|
}
|
|
// Use different log levels to test all paths
|
|
switch id % 5 {
|
|
case 0:
|
|
logger.Debug(msg)
|
|
case 1:
|
|
logger.Info(msg)
|
|
case 2:
|
|
logger.Warn(msg)
|
|
case 3:
|
|
logger.Error(msg)
|
|
case 4:
|
|
logger.Fatal(msg)
|
|
}
|
|
}(i)
|
|
}
|
|
|
|
// Wait for all goroutines to complete
|
|
wg.Wait()
|
|
|
|
// If we make it here without a race detector failure, the test passes
|
|
if output.Len() == 0 {
|
|
t.Error("Expected log output, but got none")
|
|
}
|
|
}
|