Add files via upload

This commit is contained in:
公明
2026-07-06 14:17:49 +08:00
committed by GitHub
parent b41d334d2b
commit 754b1ad88b
@@ -1,6 +1,10 @@
package multiagent
import "testing"
import (
"fmt"
"sync"
"testing"
)
func TestMCPExecutionBinder(t *testing.T) {
b := NewMCPExecutionBinder()
@@ -12,3 +16,28 @@ func TestMCPExecutionBinder(t *testing.T) {
t.Fatalf("expected empty, got %q", got)
}
}
// TestMCPExecutionBinder_ConcurrentBind 回归并行 tool 回调不得 concurrent map panic。
func TestMCPExecutionBinder_ConcurrentBind(t *testing.T) {
b := NewMCPExecutionBinder()
const workers = 64
var wg sync.WaitGroup
wg.Add(workers * 2)
for i := 0; i < workers; i++ {
i := i
toolCallID := fmt.Sprintf("call-%d", i)
execID := fmt.Sprintf("exec-%d", i)
go func() {
defer wg.Done()
b.Bind(toolCallID, execID)
}()
go func() {
defer wg.Done()
_ = b.ExecutionID(toolCallID)
}()
}
wg.Wait()
if got := b.ExecutionID("call-0"); got != "exec-0" {
t.Fatalf("expected exec-0, got %q", got)
}
}