Smail/backend/utils/password/random_failure_test.go
smail c82be24178
Some checks are pending
Security Checks / security (push) Waiting to run
修复全量测试竞态并更新审查夹具,保存证书覆盖调整前基线
2026-09-20 01:25:34 +08:00

37 lines
944 B
Go

package password
import (
"errors"
"testing"
)
func TestHashRandomFailureReleasesCapacity(t *testing.T) {
expected := errors.New("random source unavailable")
_, err := hashWithRandom("StrongPass12", func([]byte) (int, error) {
return 0, expected
})
if !errors.Is(err, expected) {
t.Fatalf("随机源异常未返回:%v", err)
}
if _, err := Hash("StrongPass12"); err != nil {
t.Fatalf("随机源异常后计算名额未释放:%v", err)
}
}
func TestHashRandomPanicReleasesCapacity(t *testing.T) {
expected := errors.New("random source panic")
func() {
defer func() {
if recovered := recover(); recovered != expected {
t.Errorf("未保留预期的随机源异常:%v", recovered)
}
}()
_, _ = hashWithRandom("StrongPass12", func([]byte) (int, error) {
panic(expected)
})
}()
if _, err := Hash("StrongPass12"); err != nil {
t.Fatalf("随机源异常退出后计算名额未释放:%v", err)
}
}