Documentation
¶
Overview ¶
Package compatibleparity holds deterministic canonical parity and instance-isolation fixtures for the three built-in compatible backend modes.
Fixtures reuse pkg/lipapi Call/Event types and drive in-process httptest servers only. They never contact real providers or require real credentials.
Task 1.4 freezes these fixtures and RED tests. Production construction that attaches tokenizer and per-instance admission (Tasks 3.x/4.x) is intentionally absent; isolation tests fail until that behavior exists.
Index ¶
- func ApplyDeliveryMode(call lipapi.Call, mode lipapi.DeliveryMode) lipapi.Call
- func AssertContainsKinds(t *testing.T, got []lipapi.EventKind, want []lipapi.EventKind)
- func AssertMultimodalRequestMapped(t *testing.T, ws *WireServer, family Family)
- func AssertOutcomesEqual(t *testing.T, fx Fixture, essential, generic OutcomeSnapshot)
- func AssertTerminalLast(t *testing.T, events []lipapi.Event)
- func CandidateFor(fx Fixture) routing.AttemptCandidate
- func CompatibleYAML(inst InstanceConfig, baseURL string) string
- func DrainEvents(t *testing.T, es lipapi.ManagedEventStream) ([]lipapi.Event, error)
- func EssentialBackend(t *testing.T, family Family, baseURL string, client *http.Client) execbackend.Backend
- func EventKinds(events []lipapi.Event) []lipapi.EventKind
- func ExecutionBaseURL(family Family, srvURL string) string
- func FactoryGenericBackend(t *testing.T, family Family, prefix, baseURL, envRoot, envValue string, ...) execbackend.Backend
- func FinishReasonFromEvents(events []lipapi.Event) string
- func GenericBackend(t *testing.T, family Family, prefix, baseURL, apiKey string, ...) execbackend.Backend
- func MustDecodeInstance(instanceID, factory, raw string) (config.CompatibleModeConfig, error)
- func OpenAndCollect(t *testing.T, be execbackend.Backend, fx Fixture) ([]lipapi.Event, error)
- func OpenAndCollectWithCall(t *testing.T, be execbackend.Backend, fx Fixture, call lipapi.Call) ([]lipapi.Event, error)
- func ReasoningFromEvents(events []lipapi.Event) string
- func SignatureFromEvents(events []lipapi.Event) string
- func TextFromEvents(events []lipapi.Event) string
- func ToolArgsFromEvents(events []lipapi.Event) string
- func ToolCallIDFromEvents(events []lipapi.Event) string
- func ToolNameFromEvents(events []lipapi.Event) string
- func UsageField(events []lipapi.Event, field usageField) int
- type FailurePhase
- type Family
- type Fixture
- type InstanceConfig
- type InstancePair
- type OutcomeSnapshot
- type Scenario
- type WireServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyDeliveryMode ¶
ApplyDeliveryMode sets invocation transport fields on a fixture call copy.
func AssertContainsKinds ¶
AssertContainsKinds checks that wantKinds appear in order (not necessarily contiguous).
func AssertMultimodalRequestMapped ¶
func AssertMultimodalRequestMapped(t *testing.T, ws *WireServer, family Family)
AssertMultimodalRequestMapped verifies upstream request carried the image reference.
func AssertOutcomesEqual ¶
func AssertOutcomesEqual(t *testing.T, fx Fixture, essential, generic OutcomeSnapshot)
AssertOutcomesEqual compares essential and generic canonical snapshots.
func AssertTerminalLast ¶
AssertTerminalLast ensures ResponseFinished is the final lifecycle event when present.
func CandidateFor ¶
func CandidateFor(fx Fixture) routing.AttemptCandidate
CandidateFor returns a routing candidate for the fixture model.
func CompatibleYAML ¶
func CompatibleYAML(inst InstanceConfig, baseURL string) string
CompatibleYAML renders a strict CompatibleModeConfig document for decoding and factory construction through the standardplugins registry.
func DrainEvents ¶
DrainEvents reads a managed stream to completion (or first error).
func EssentialBackend ¶
func EssentialBackend(t *testing.T, family Family, baseURL string, client *http.Client) execbackend.Backend
EssentialBackend builds the bundled essential adapter for family against baseURL.
func EventKinds ¶
EventKinds returns the kind sequence for comparison.
func ExecutionBaseURL ¶
ExecutionBaseURL returns the httptest origin used for a family (OpenAI adds /v1 in constructors).
func FactoryGenericBackend ¶
func FactoryGenericBackend(t *testing.T, family Family, prefix, baseURL, envRoot, envValue string, client *http.Client) execbackend.Backend
FactoryGenericBackend builds a compatible mode through the standardplugins factory registry (endpoint validation, credentials, inventory, tokenizer, admission).
func FinishReasonFromEvents ¶
func GenericBackend ¶
func GenericBackend(t *testing.T, family Family, prefix, baseURL, apiKey string, client *http.Client) execbackend.Backend
GenericBackend builds a compatible-mode adapter through the standardplugins factory registry (endpoint validation, credentials, inventory, tokenizer, admission).
func MustDecodeInstance ¶
func MustDecodeInstance(instanceID, factory, raw string) (config.CompatibleModeConfig, error)
MustDecodeInstance decodes inst as CompatibleModeConfig against baseURL.
func OpenAndCollect ¶
OpenAndCollect opens a backend for fx and drains events.
func OpenAndCollectWithCall ¶
func OpenAndCollectWithCall(t *testing.T, be execbackend.Backend, fx Fixture, call lipapi.Call) ([]lipapi.Event, error)
OpenAndCollectWithCall opens using an explicit call (for delivery-mode variants).
func ReasoningFromEvents ¶
ReasoningFromEvents concatenates reasoning deltas and reasoning-part payloads.
func SignatureFromEvents ¶
func TextFromEvents ¶
TextFromEvents concatenates text deltas.
func ToolArgsFromEvents ¶
func ToolCallIDFromEvents ¶
func ToolNameFromEvents ¶
ToolNameFromEvents returns the first tool call name.
func UsageField ¶
Types ¶
type FailurePhase ¶
type FailurePhase string
FailurePhase classifies where a compatible parity failure surfaced.
const ( FailurePhaseNone FailurePhase = "" FailurePhaseOpen FailurePhase = "open" FailurePhaseRecv FailurePhase = "recv" )
type Family ¶
type Family string
Family identifies one essential/generic protocol pair under test.
func AllFamilies ¶
func AllFamilies() []Family
AllFamilies returns the three compatible-mode protocol families.
type Fixture ¶
type Fixture struct {
Name string
Family Family
Scenario Scenario
Delivery lipapi.DeliveryMode
Call lipapi.Call
Model string
WantKinds []lipapi.EventKind
WantText string
WantTool string
WantToolArgs string
WantReason string
WantSignature string
WantFinishReason string
WantInputTokens int
WantOutputTokens int
WantTotalTokens int
WantReasoningTokens int
// OpenFails means Open or the first Recv must fail (errors / cancellation).
OpenFails bool
// CancelAfterOpen cancels the stream context after Open returns.
CancelAfterOpen bool
}
Fixture is one canonical request/expectation pair shared by essential and generic adapters of a family.
func ParityFixtures ¶
func ParityFixtures() []Fixture
ParityFixtures returns deterministic fixtures for every family × scenario cell, plus non-streaming variants for OpenAI families on success scenarios.
func (Fixture) ExpectFailure ¶
ExpectFailure reports whether the fixture expects Open/Recv failure.
func (Fixture) WithDelivery ¶
func (fx Fixture) WithDelivery(mode lipapi.DeliveryMode) Fixture
WithDelivery returns a fixture copy using the given delivery mode.
type InstanceConfig ¶
type InstanceConfig struct {
InstanceID string
BackendPrefix string
BaseURL string
APIKeyEnvVarRoot string
EnvKeyValue string
TokenizerID string
MaxConcurrentRequests int
ModelNativeID string
ModelCanonicalID string
}
InstanceConfig is the fixture shape for one CompatibleModeConfig row.
type InstancePair ¶
type InstancePair struct {
Family Family
Factory string
InstanceA InstanceConfig
InstanceB InstanceConfig
}
InstancePair describes two same-kind compatible instances that must remain isolated across endpoint, env credential root, tokenizer, inventory, and concurrency settings.
func IsolationPairs ¶
func IsolationPairs() []InstancePair
IsolationPairs returns two-instance fixtures for every compatible family.
type OutcomeSnapshot ¶
type OutcomeSnapshot struct {
Kinds []lipapi.EventKind
Text string
Reasoning string
Signature string
ToolName string
ToolCallID string
ToolArgs string
InputTokens int
OutputTokens int
TotalTokens int
ReasoningTokens int
FinishReason string
TerminalKind lipapi.EventKind
TerminalCount int
FailurePhase FailurePhase
StreamErrCode string
StreamErrMsg string
EventErrCode string
EventErrMsg string
HTTPRequests int
}
OutcomeSnapshot captures canonical fields compared between essential and generic adapters.
func CollectOutcome ¶
func CollectOutcome(t *testing.T, be execbackend.Backend, fx Fixture, ws *WireServer) OutcomeSnapshot
CollectOutcome opens be for fx, drains events, and returns a comparable snapshot.
type Scenario ¶
type Scenario string
Scenario is one deterministic parity cell.
const ( ScenarioText Scenario = "text" ScenarioReasoning Scenario = "reasoning" ScenarioTools Scenario = "tools" ScenarioMultimodal Scenario = "multimodal" ScenarioUsage Scenario = "usage" ScenarioError Scenario = "error" ScenarioPostOutputError Scenario = "post_output_error" ScenarioNoRetryAfterOutput Scenario = "no_retry_after_output" ScenarioCancellation Scenario = "cancellation" ScenarioTerminalOrdering Scenario = "terminal_ordering" )
func AllScenarios ¶
func AllScenarios() []Scenario
AllScenarios returns the Task 4.4 parity coverage matrix.
type WireServer ¶
type WireServer struct {
URL string
Server *httptest.Server
// contains filtered or unexported fields
}
WireServer is a deterministic httptest for one family/scenario cell.
func NewWireServer ¶
func NewWireServer(t *testing.T, family Family, scenario Scenario) *WireServer
NewWireServer serves fixture provider payloads for family/scenario.
func (*WireServer) Auths ¶
func (ws *WireServer) Auths() []string
func (*WireServer) Bodies ¶
func (ws *WireServer) Bodies() [][]byte
func (*WireServer) Paths ¶
func (ws *WireServer) Paths() []string
func (*WireServer) RequestCount ¶
func (ws *WireServer) RequestCount() int