DevelopmentAll versions
On this page

Module ketraterm-testkit

Repository-only helpers for deterministic tests of transport and terminal semantics. This module is excluded from the supported Maven, ABI, and aggregated public API documentation boundary.

Upstream Dependencies

Production composition uses public contracts from core, host, parser, and transport API. Jackson encodes and decodes the independent oracle's JSON process protocol. These are implementation dependencies. Consumers are test source sets, not production modules.

Public API Surface

Helper Responsibility
MockConnector Synchronous host-byte delivery, copied outbound capture, and explicit lifecycle simulation.
TerminalReplayEvent / TerminalReplayTranscript Detached input chunks and ordered input, resize, and end-of-input events.
TerminalConformanceHarness Stateful replay through the production parser-to-core pipeline and response collection.
TerminalConformanceSnapshot Detached observable grid, cursor, modes, metadata, and response values.
TerminalReplayChunkings Deterministic partitions for bounded chunk-invariance fixtures.
TerminalConformanceDiffer Bounded structural snapshot diagnostics.
TerminalDifferentialOracle / TerminalDifferentialComparator Independent emulator execution and comparison of explicitly shared observations.

Architectural Role

The conformance harness owns its parser, adapter, core buffer, and copied snapshot values. It is stateful and must be recreated for independent runs. The connector fake forwards a borrowed host slice synchronously; it retains copies of writes. Neither helper adds a synchronization boundary.

TerminalProcessOracle launches one bounded process per replay. TerminalPersistentProcessOracle keeps a JSON-lines worker for repeated requests; its owner must close it. The repository's xterm adapter creates fresh emulator state per request. Oracle output describes a comparison scope, not an alternative source of truth for KetraTerm's semantics.

Source sets

See the README for dependency setup and complete usage examples. Reusable helpers belong in src/main; test corpora, generated campaigns, and publication verification belong in src/test. Isolated external-consumer sources and retained binaries live in src/consumerTest.

Running Testkit Tests

The README task reference separates ordinary tests, optional campaigns, and publication checks. The consumer guide describes the staged Maven and compiled-client workflows.