Detach prepared execution ownership from runners
This commit is contained in:
@@ -600,6 +600,9 @@ func TestRunnerPreparedExecutionOwnershipUseAndDiscard(t *testing.T) {
|
||||
}
|
||||
|
||||
owner := newRunner()
|
||||
if other := newRunner(); owner.identity == nil || owner.identity == other.identity {
|
||||
t.Fatal("constructed runners must have independent identity tokens")
|
||||
}
|
||||
prepared, err := owner.PrepareExecution(context.Background(), request)
|
||||
if err != nil {
|
||||
t.Fatalf("prepare execution: %v", err)
|
||||
@@ -616,6 +619,9 @@ func TestRunnerPreparedExecutionOwnershipUseAndDiscard(t *testing.T) {
|
||||
if prepared.Details() == nil {
|
||||
t.Fatal("details unavailable after execution")
|
||||
}
|
||||
if prepared.owner != owner.identity || prepared.payload != nil {
|
||||
t.Fatal("claimed handle retained payload or lost owner identity")
|
||||
}
|
||||
|
||||
discarded, err := owner.PrepareExecution(context.Background(), request)
|
||||
if err != nil {
|
||||
@@ -623,6 +629,9 @@ func TestRunnerPreparedExecutionOwnershipUseAndDiscard(t *testing.T) {
|
||||
}
|
||||
discarded.Discard()
|
||||
discarded.Discard()
|
||||
if discarded.owner != owner.identity || discarded.payload != nil {
|
||||
t.Fatal("discarded handle retained payload or lost owner identity")
|
||||
}
|
||||
if _, err := owner.RunPrepared(context.Background(), discarded); !errors.Is(err, ErrInvalidRequest) {
|
||||
t.Fatalf("discarded execution error=%v, want ErrInvalidRequest", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user