ccpoad / internal /util /time_bench_test.go
anyalerob's picture
Upload folder using huggingface_hub
2986042 verified
Raw
History Blame Contribute Delete
2.01 kB
package util
import (
"testing"
"time"
)
// BenchmarkCalculateBackoffDuration_AuthError 基准测试:401认证错误首次冷却
func BenchmarkCalculateBackoffDuration_AuthError(b *testing.B) {
statusCode := 401
now := time.Now()
b.ReportAllocs()
for b.Loop() {
_ = CalculateBackoffDuration(0, time.Time{}, now, &statusCode)
}
}
// BenchmarkCalculateBackoffDuration_OtherError 基准测试:500服务器错误首次冷却
func BenchmarkCalculateBackoffDuration_OtherError(b *testing.B) {
statusCode := 500
now := time.Now()
b.ReportAllocs()
for b.Loop() {
_ = CalculateBackoffDuration(0, time.Time{}, now, &statusCode)
}
}
// BenchmarkCalculateBackoffDuration_ExponentialBackoff 基准测试:指数退避计算
func BenchmarkCalculateBackoffDuration_ExponentialBackoff(b *testing.B) {
statusCode := 401
now := time.Now()
prevMs := int64(5 * time.Minute / time.Millisecond)
b.ReportAllocs()
for b.Loop() {
_ = CalculateBackoffDuration(prevMs, time.Unix(0, 0), now, &statusCode)
}
}
// BenchmarkCalculateBackoffDuration_NilStatusCode 基准测试:无状态码场景(网络错误)
func BenchmarkCalculateBackoffDuration_NilStatusCode(b *testing.B) {
now := time.Now()
b.ResetTimer()
b.ReportAllocs()
for i := 0; i < b.N; i++ {
_ = CalculateBackoffDuration(0, time.Time{}, now, nil)
}
}
// BenchmarkCalculateBackoffDuration_MaxLimit 基准测试:达到上限30分钟场景
func BenchmarkCalculateBackoffDuration_MaxLimit(b *testing.B) {
statusCode := 401
now := time.Now()
prevMs := int64(20 * time.Minute / time.Millisecond) // 20分钟 * 2 = 40分钟(超过上限)
b.ReportAllocs()
for b.Loop() {
_ = CalculateBackoffDuration(prevMs, time.Unix(0, 0), now, &statusCode)
}
}
// BenchmarkCalculateCooldownDuration 基准测试:计算冷却持续时间
func BenchmarkCalculateCooldownDuration(b *testing.B) {
now := time.Now()
until := now.Add(5 * time.Minute)
b.ReportAllocs()
for b.Loop() {
_ = CalculateCooldownDuration(until, now)
}
}