Add cache test for admins (#31265)

Add a test to probe the cache similar to the email test func.

![image](700e2733-586d-4091-900f-f5f71e6e94bf)

![image](2a953802-18fc-4e81-a37d-24ebe1297365)

![image](e00d62ad-bb60-41cc-9138-09993daee156)

---------

Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: silverwind <me@silverwind.io>
(cherry picked from commit 363c1235987793dffa5cc851aaae585eb81f091e)

Conflicts:
	options/locale/locale_en-US.ini
	templates/admin/self_check.tmpl
	trivial context conflict
This commit is contained in:
6543 2024-06-17 21:22:39 +02:00 committed by Earl Warren
parent 40cd885c11
commit 77da92f42a
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
8 changed files with 93 additions and 2 deletions

View file

@ -40,6 +40,37 @@ func Init() error {
return err
}
const (
testCacheKey = "DefaultCache.TestKey"
SlowCacheThreshold = 100 * time.Microsecond
)
func Test() (time.Duration, error) {
if defaultCache == nil {
return 0, fmt.Errorf("default cache not initialized")
}
testData := fmt.Sprintf("%x", make([]byte, 500))
start := time.Now()
if err := defaultCache.Delete(testCacheKey); err != nil {
return 0, fmt.Errorf("expect cache to delete data based on key if exist but got: %w", err)
}
if err := defaultCache.Put(testCacheKey, testData, 10); err != nil {
return 0, fmt.Errorf("expect cache to store data but got: %w", err)
}
testVal, hit := defaultCache.Get(testCacheKey)
if !hit {
return 0, fmt.Errorf("expect cache hit but got none")
}
if testVal != testData {
return 0, fmt.Errorf("expect cache to return same value as stored but got other")
}
return time.Since(start), nil
}
// GetCache returns the currently configured cache
func GetCache() mc.Cache {
return conn