compatibleparity

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2026 License: Apache-2.0 Imports: 23 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyDeliveryMode

func ApplyDeliveryMode(call lipapi.Call, mode lipapi.DeliveryMode) lipapi.Call

ApplyDeliveryMode sets invocation transport fields on a fixture call copy.

func AssertContainsKinds

func AssertContainsKinds(t *testing.T, got []lipapi.EventKind, want []lipapi.EventKind)

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

func AssertTerminalLast(t *testing.T, events []lipapi.Event)

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

func DrainEvents(t *testing.T, es lipapi.ManagedEventStream) ([]lipapi.Event, error)

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

func EventKinds(events []lipapi.Event) []lipapi.EventKind

EventKinds returns the kind sequence for comparison.

func ExecutionBaseURL

func ExecutionBaseURL(family Family, srvURL string) string

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 FinishReasonFromEvents(events []lipapi.Event) string

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

func OpenAndCollect(t *testing.T, be execbackend.Backend, fx Fixture) ([]lipapi.Event, error)

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

func ReasoningFromEvents(events []lipapi.Event) string

ReasoningFromEvents concatenates reasoning deltas and reasoning-part payloads.

func SignatureFromEvents

func SignatureFromEvents(events []lipapi.Event) string

func TextFromEvents

func TextFromEvents(events []lipapi.Event) string

TextFromEvents concatenates text deltas.

func ToolArgsFromEvents

func ToolArgsFromEvents(events []lipapi.Event) string

func ToolCallIDFromEvents

func ToolCallIDFromEvents(events []lipapi.Event) string

func ToolNameFromEvents

func ToolNameFromEvents(events []lipapi.Event) string

ToolNameFromEvents returns the first tool call name.

func UsageField

func UsageField(events []lipapi.Event, field usageField) int

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.

const (
	FamilyOpenAILegacy    Family = "openai-legacy"
	FamilyOpenAIResponses Family = "openai-responses"
	FamilyAnthropic       Family = "anthropic"
)

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

func (fx Fixture) ExpectFailure() bool

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL