- Change all `import hono` to `import meiseayoung.hono` in code and docs - Ensure compatibility with VPM installation via `v install meiseayoung.hono`
87 lines
2.1 KiB
V
87 lines
2.1 KiB
V
import meiseayoung.hono
|
|
import time
|
|
|
|
fn main() {
|
|
println('=== 简化LRU缓存测试 ===')
|
|
|
|
// 创建简单的路由匹配对象
|
|
test_handler := hono.ContextHandler{
|
|
path: '/test'
|
|
handler: unsafe { nil } // 简化,不设置真实handler
|
|
}
|
|
|
|
test_route_match := hono.ContextRouteMatch{
|
|
handler: test_handler
|
|
params: map[string]string{}
|
|
path: '/test'
|
|
base_path: ''
|
|
}
|
|
|
|
// 测试基本功能
|
|
println('测试1: 创建缓存并添加项目')
|
|
mut cache := hono.ContextLRUCache.new(3)
|
|
cache.put('key1', test_route_match)
|
|
cache.put('key2', test_route_match)
|
|
|
|
size, capacity := cache.get_stats()
|
|
println('添加2项后: $size/$capacity')
|
|
|
|
// 测试详细统计
|
|
println('\n测试2: 获取详细统计信息')
|
|
stats := cache.get_detailed_stats()
|
|
println('大小: ${stats['size']}')
|
|
println('容量: ${stats['capacity']}')
|
|
println('TTL: ${stats['ttl_seconds']}秒')
|
|
|
|
// 测试健康检查
|
|
println('\n测试3: 健康检查')
|
|
is_healthy := cache.is_healthy()
|
|
println('缓存健康状态: $is_healthy')
|
|
|
|
// 测试TTL设置
|
|
println('\n测试4: TTL设置')
|
|
cache.set_ttl(10)
|
|
cache.set_cleanup_interval(5)
|
|
|
|
// 测试强制清理
|
|
println('\n测试5: 强制清理过期项')
|
|
cache.force_cleanup_expired()
|
|
|
|
size2, _ := cache.get_stats()
|
|
println('强制清理后大小: $size2')
|
|
|
|
// 测试完全清理
|
|
println('\n测试6: 完全清理')
|
|
cache.clear()
|
|
|
|
size3, _ := cache.get_stats()
|
|
is_healthy2 := cache.is_healthy()
|
|
println('完全清理后大小: $size3')
|
|
println('清理后健康状态: $is_healthy2')
|
|
|
|
// 测试TTL缓存
|
|
println('\n测试7: TTL功能')
|
|
mut ttl_cache := hono.ContextLRUCache.new_with_ttl(5, 2) // 2秒TTL
|
|
ttl_cache.put('expire_key', test_route_match)
|
|
println('添加会过期的项目')
|
|
|
|
// 立即检查
|
|
if _ := ttl_cache.get('expire_key') {
|
|
println('立即获取: ✅ 成功')
|
|
} else {
|
|
println('立即获取: ❌ 失败')
|
|
}
|
|
|
|
// 等待过期
|
|
println('等待3秒让项目过期...')
|
|
time.sleep(3 * time.second)
|
|
|
|
if _ := ttl_cache.get('expire_key') {
|
|
println('过期后获取: ❌ 仍然存在')
|
|
} else {
|
|
println('过期后获取: ✅ 正确过期')
|
|
}
|
|
|
|
println('\n所有测试完成! 🎉')
|
|
}
|