Files
ragflow/internal/harness/core/benchmark_test.go
Yingfeng 706e0d2d06 Refactor harness framework (#16271)
### What problem does this PR solve?

- Tools management
- Pregel engine wrapper for better usage
- UT race
- Coding style

### Type of change

- [x] Refactoring
2026-06-23 20:18:04 +08:00

58 lines
1.2 KiB
Go

package core
import (
"context"
"testing"
"ragflow/internal/harness/core/schema"
)
func BenchmarkReActAgent_ReActLoop(b *testing.B) {
tool := &mockTool{name: "bench_tool", desc: "benchmark tool"}
ctx := context.Background()
b.ResetTimer()
for i := 0; i < b.N; i++ {
model := &mockModel{}
model.addResp("tool")
model.addResp("done")
agent := NewReActAgent(&ReActConfig[*schema.Message]{
Model: model,
Tools: []Tool{tool},
ToolsConfig: &ToolsNodeConfig{Tools: []Tool{tool}},
})
agent.name = "bench"
iter := agent.Run(ctx, &AgentInput{Messages: []Message{schema.UserMessage("bench")}})
for {
_, ok := iter.Next()
if !ok {
break
}
}
}
}
func BenchmarkReActAgent_NoTools(b *testing.B) {
ctx := context.Background()
b.ResetTimer()
for i := 0; i < b.N; i++ {
model := &mockModel{}
model.addResp("done")
agent := NewReActAgent(&ReActConfig[*schema.Message]{Model: model})
agent.name = "bench_nt"
iter := agent.Run(ctx, &AgentInput{Messages: []Message{schema.UserMessage("hi")}})
for {
_, ok := iter.Next()
if !ok {
break
}
}
}
}
func BenchmarkCancelContext_NewCancel(b *testing.B) {
for i := 0; i < b.N; i++ {
cc := newCancelContext()
cc.triggerCancel(CancelImmediate)
}
}