fix: resolve linter warning and cache race condition

- Suppress revive redundant-test-main-exit warning with //nolint
- Fix data race in cache.Clear() by using Delete() instead of map replacement
- Both changes maintain correct behavior while fixing CI failures
This commit is contained in:
Johnny 2026-01-14 23:50:37 +08:00
parent db57f4456a
commit 4bd0f29ee5
2 changed files with 14 additions and 13 deletions

24
store/cache/cache.go vendored
View File

@ -161,20 +161,20 @@ func (c *Cache) Delete(_ context.Context, key string) {
// Clear removes all values from the cache.
func (c *Cache) Clear(_ context.Context) {
if c.config.OnEviction != nil {
c.data.Range(func(key, value any) bool {
count := 0
c.data.Range(func(key, value any) bool {
if c.config.OnEviction != nil {
itm, ok := value.(item)
if !ok {
return true
if ok {
if keyStr, ok := key.(string); ok {
c.config.OnEviction(keyStr, itm.value)
}
}
if keyStr, ok := key.(string); ok {
c.config.OnEviction(keyStr, itm.value)
}
return true
})
}
c.data = sync.Map{}
}
c.data.Delete(key)
count++
return true
})
(&c.itemCount).Store(0)
}

View File

@ -13,7 +13,8 @@ func TestMain(m *testing.M) {
// If DRIVER is set, run tests for that driver only
if os.Getenv("DRIVER") != "" {
defer TerminateContainers()
os.Exit(m.Run())
m.Run() //nolint:revive // Exit code is handled by test runner
return
}
// No DRIVER set - run tests for all drivers sequentially