go-crypt/trust/bench_test.go
Snider ee58e790a0
Some checks failed
Security Scan / security (push) Failing after 11s
Test / test (push) Failing after 29s
feat: modernise to Go 1.26 iterators and stdlib helpers
Add iter.Seq iterators for trust registry (ListSeq), audit log
(EventsSeq, QuerySeq), and approval store (PendingSeq). Use
slices.DeleteFunc in session store, slices.SortFunc in testcmd,
range-over-int in benchmarks.

Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 05:47:13 +00:00

69 lines
1.4 KiB
Go

package trust
import (
"fmt"
"testing"
)
// BenchmarkPolicyEvaluate measures policy evaluation across 100 registered agents.
func BenchmarkPolicyEvaluate(b *testing.B) {
r := NewRegistry()
for i := range 100 {
tier := TierUntrusted
switch i % 3 {
case 0:
tier = TierFull
case 1:
tier = TierVerified
}
_ = r.Register(Agent{
Name: fmt.Sprintf("agent-%d", i),
Tier: tier,
ScopedRepos: []string{"host-uk/core", "host-uk/docs"},
})
}
pe := NewPolicyEngine(r)
caps := []Capability{
CapPushRepo, CapCreatePR, CapMergePR, CapCommentIssue,
CapCreateIssue, CapReadSecrets, CapRunPrivileged,
CapAccessWorkspace, CapModifyFlows,
}
b.ResetTimer()
for i := range b.N {
agentName := fmt.Sprintf("agent-%d", i%100)
cap := caps[i%len(caps)]
_ = pe.Evaluate(agentName, cap, "host-uk/core")
}
}
// BenchmarkRegistryGet measures agent lookup performance.
func BenchmarkRegistryGet(b *testing.B) {
r := NewRegistry()
for i := range 100 {
_ = r.Register(Agent{
Name: fmt.Sprintf("agent-%d", i),
Tier: TierVerified,
})
}
b.ResetTimer()
for i := range b.N {
name := fmt.Sprintf("agent-%d", i%100)
_ = r.Get(name)
}
}
// BenchmarkRegistryRegister measures agent registration performance.
func BenchmarkRegistryRegister(b *testing.B) {
r := NewRegistry()
b.ResetTimer()
for i := range b.N {
_ = r.Register(Agent{
Name: fmt.Sprintf("bench-agent-%d", i),
Tier: TierVerified,
})
}
}