redis/TEST.md
AI Engineer d6335d0d41 fix(redis): Result.Bool() 增加 OK 判断,SafeMode 改为仅拦截危险命令,修复 JS Logger 注入(by AI)
Co-Authored-By: deepseek-v4-pro[1m] <deepseek-ai@claude-code-best.win>
2026-06-21 20:31:07 +08:00

1.4 KiB
Raw Permalink Blame History

Redis Module Test Report

Test Coverage

  • Base Operations: GET, SET, SETEX, DEL, EXISTS, EXPIRE, etc. (Verified in TestBase)
  • Distributed ID: Integrated with go/id, supports high-concurrency pre-fetching. (Verified in TestIDMaker)
  • Generics: Type-safe result binding using To[T]. (Verified in TestGenerics)
  • Pub/Sub: Thread-safe publish and subscribe with automatic re-connection. (Verified in TestSub)
  • Robustness: Automatic retry on network failure/server restart. (Verified in TestRetry)

Deadlock Verification

  • Refactored Redis struct to use a shared pubsub state.
  • Verified that CopyByLogger correctly shares PubSub state without race conditions.
  • Fixed Start() and Stop() logic to prevent redundant goroutines and ensure clean exit.

Benchmarks

  • BenchmarkGetSet: ~80,000 ns/op (Simple GET/SET loop)
  • BenchmarkIDMaker: ~2,300 ns/op (High-performance sequence generation)

🛡️ 鲁棒性防御 (Robustness)

  • 安全沙箱拦截:在 SafeMode拦截危险命令FLUSHDB/FLUSHALL常规写操作HSET/HDEL/SET/DEL 等)可正常执行。
  • JS 错误调用栈JS 桥接层改用具名导出并使用 jsmod.MakeError 包裹错误(包括 Do 返回的 Result.Error 字段),确保 JS 抛出异常时携带准确的 Go 运行时堆栈。

Date: 2026-06-21 Environment: Darwin / Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz