fix: remove parallel execution from Gin tests to prevent data races
- Remove t.Parallel() from tests that use gin.SetMode()
- gin.SetMode() modifies global state and is not thread-safe
- Tests affected:
* TestRequestIDMiddleware_GenerateNewID
* TestRequestIDMiddleware_UseExistingID
* TestLoggingMiddleware
* TestLoggingMiddleware_WithRequestID
* TestRequestIDMiddleware_MultipleRequests
- Add comments explaining why these tests cannot run in parallel
- All tests now pass with race detector enabled (-race flag)
This fixes data race warnings that were occurring when running tests
with the race detector, specifically when multiple tests tried to set
Gin's mode concurrently.
This commit is contained in:
@@ -11,8 +11,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestRequestIDMiddleware_GenerateNewID(t *testing.T) {
|
func TestRequestIDMiddleware_GenerateNewID(t *testing.T) {
|
||||||
t.Parallel()
|
// Cannot run in parallel: gin.SetMode() modifies global state
|
||||||
|
|
||||||
gin.SetMode(gin.TestMode)
|
gin.SetMode(gin.TestMode)
|
||||||
router := gin.New()
|
router := gin.New()
|
||||||
router.Use(RequestIDMiddleware())
|
router.Use(RequestIDMiddleware())
|
||||||
@@ -41,8 +40,7 @@ func TestRequestIDMiddleware_GenerateNewID(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRequestIDMiddleware_UseExistingID(t *testing.T) {
|
func TestRequestIDMiddleware_UseExistingID(t *testing.T) {
|
||||||
t.Parallel()
|
// Cannot run in parallel: gin.SetMode() modifies global state
|
||||||
|
|
||||||
gin.SetMode(gin.TestMode)
|
gin.SetMode(gin.TestMode)
|
||||||
router := gin.New()
|
router := gin.New()
|
||||||
router.Use(RequestIDMiddleware())
|
router.Use(RequestIDMiddleware())
|
||||||
@@ -196,7 +194,7 @@ func TestUserIDFromContext(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLoggingMiddleware(t *testing.T) {
|
func TestLoggingMiddleware(t *testing.T) {
|
||||||
t.Parallel()
|
// Cannot run in parallel: gin.SetMode() modifies global state
|
||||||
|
|
||||||
// Create a mock logger that records log calls
|
// Create a mock logger that records log calls
|
||||||
mockLog := &mockLoggerForMiddleware{}
|
mockLog := &mockLoggerForMiddleware{}
|
||||||
@@ -238,7 +236,7 @@ func TestLoggingMiddleware(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLoggingMiddleware_WithRequestID(t *testing.T) {
|
func TestLoggingMiddleware_WithRequestID(t *testing.T) {
|
||||||
t.Parallel()
|
// Cannot run in parallel: gin.SetMode() modifies global state
|
||||||
|
|
||||||
// Create a mock logger
|
// Create a mock logger
|
||||||
mockLog := &mockLoggerForMiddleware{}
|
mockLog := &mockLoggerForMiddleware{}
|
||||||
@@ -272,8 +270,7 @@ func TestLoggingMiddleware_WithRequestID(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRequestIDMiddleware_MultipleRequests(t *testing.T) {
|
func TestRequestIDMiddleware_MultipleRequests(t *testing.T) {
|
||||||
t.Parallel()
|
// Cannot run in parallel: gin.SetMode() modifies global state
|
||||||
|
|
||||||
gin.SetMode(gin.TestMode)
|
gin.SetMode(gin.TestMode)
|
||||||
router := gin.New()
|
router := gin.New()
|
||||||
router.Use(RequestIDMiddleware())
|
router.Use(RequestIDMiddleware())
|
||||||
|
|||||||
Reference in New Issue
Block a user