Why: native must compile without agent-intent, and the two execution packages were the same contract under two names. Evidence: GOWORK=off go test -count=1 ./... passed, including schema.TestRequestAndResultRoundTrip and the native adapter tests after Options was split into embedded sub-structs. Impact: adapters/intentgate is gone, go.mod no longer requires agent-intent, and the nested gitlink stays for the release task. Callers of Options composite literals name the sub-struct. Refs: D1 Co-authored-by: Cursor <cursoragent@cursor.com>
42 lines
929 B
Go
42 lines
929 B
Go
package conformance
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"agent-native/exec"
|
|
)
|
|
|
|
func TestFakeBackendSuite(t *testing.T) {
|
|
Suite(t, func() exec.ContractBackend {
|
|
return &FakeBackend{
|
|
Desc: exec.BackendDescriptor{
|
|
Name: "fake",
|
|
Capabilities: []exec.Capability{exec.CapText},
|
|
},
|
|
Result: exec.ContractResult{
|
|
Outcome: exec.OutcomeSucceeded,
|
|
Text: "ok",
|
|
},
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestFakeCancelSemantics(t *testing.T) {
|
|
block := make(chan struct{})
|
|
b := &FakeBackend{
|
|
Desc: exec.BackendDescriptor{Name: "fake", Capabilities: []exec.Capability{exec.CapCancel}},
|
|
BlockUntil: block,
|
|
}
|
|
Run(t, Case{
|
|
Name: "cancel",
|
|
Backend: b,
|
|
Request: exec.ContractRequest{ExecutionID: "e-cancel"},
|
|
CancelAfter: 50_000_000,
|
|
WantOutcome: exec.OutcomeCanceled,
|
|
WantErrCode: exec.ErrCanceled,
|
|
})
|
|
if !b.CanceledWithCtx {
|
|
t.Fatal("backend must observe ctx cancellation before returning")
|
|
}
|
|
}
|