/
githubmirror
/
hugo
Обзор
Документация
Войти
/
githubmirror
/
hugo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
common/hmaps/cache_test.go
57 строк
1 KB
Bjørn Erik Pedersen
Rename common/maps to common/hmaps (#14384)
16 янв 2026, 13:47
Не верифицирован
16 янв 2026, 13:47
608ed09
Код
Авторство
О чём код?
// Copyright 2026 The Hugo Authors. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package hmaps import ( "testing" qt "github.com/frankban/quicktest" ) func TestCacheSize(t *testing.T) { c := qt.New(t) cache := NewCacheWithOptions[string, string](CacheOptions{Size: 10}) for i := range 30 { cache.Set(string(rune('a'+i)), "value") } c.Assert(len(cache.m), qt.Equals, 10) for i := 20; i < 50; i++ { cache.GetOrCreate(string(rune('a'+i)), func() (string, error) { return "value", nil }) } c.Assert(len(cache.m), qt.Equals, 10) for i := 100; i < 200; i++ { cache.SetIfAbsent(string(rune('a'+i)), "value") } c.Assert(len(cache.m), qt.Equals, 10) cache.InitAndGet("foo", func( get func(key string) (string, bool), set func(key string, value string), ) error { for i := 50; i < 100; i++ { set(string(rune('a'+i)), "value") } return nil }) c.Assert(len(cache.m), qt.Equals, 10) }