SDK · crate

kinogaki-studio-api-testing

SDK

The SDK's test support (a dev-dependency only): assert_refused for admission tests, read_hostile for a format's tests of hostile files, format for its scratch folders and round trips, workers as a host installs them, with wgpu an ...

Repository
SDK (kinogaki/studio-sdk)
Folder
sdk/crates/api-testing
Source
15 files, 2,853 lines
Tests
1 file, 40 lines
depends onused by tests alonedependencies for tests alone are listed below, not drawn

What it is

The SDK's test support (a dev-dependency only): assert_refused for admission tests, read_hostile for a format's tests of hostile files, format for its scratch folders and round trips, workers as a host installs them, with wgpu an engine's GPU tests' device, their turns on it and counted wakes (engine), and the conformance suite of the standard data types: producers make standard values, consumers check them, and run tries every pair.

A kernel implements Producer in its own repository (its operations' outputs over the fixtures), a render engine or a format implements Consumer (it draws, writes or reads each value and checks what it got), and each runs the suite with the SDK's own parts beside its own: Fixtures (hand-built values covering every shape and attribute kind), Codecs (a bit-exact save and read) and Invariants (each value rebuilt through the validating constructors is equal, and its edges are canonical).

Depends on

CrateRepositoryAsWhat it is
kinogaki-geometrySDKnormalKinogaki Studio's standard geometry values.
kinogaki-render-apiSDKnormalKinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.
kinogaki-studio-apiSDKnormalKinogaki Studio's headless plugin API.
kinogaki-viewport-apiSDKnormalKinogaki's viewport packet contract: what a data type hands Studio's viewport to draw, with no GPU or UI API.

Third-party

None.

Used by

CrateRepositoryAsWhat it is
example-flat-engineSDKtestsFlat: an example render engine.
example-points-formatSDKtestsXYZ: an example file format.
kinogaki-brep-meshCore and the apptestsB-reps as polygons, below the viewport, renders and file exchange alike: each body's mesh by the installed mesher, cached on its geometry (meshed), and a value's bodies joined into one polygons value (joined): each body's mesh, the faces' polygons ...
kinogaki-core-packageCore and the apptestsCore's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed.
kinogaki-editorCore and the apptestsKinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.
kinogaki-exr-formatOpenEXRtestsOpenEXR, a format plugin: an EXR file reads as one standard Image, every part's channels its layers, and an Image writes as one EXR, Cryptomatte included.
kinogaki-fbxFBXtestsFBX as a read-only format plugin for Kinogaki Studio.
kinogaki-geometry-viewCore and the apptestsGeometry, curves and B-reps in the viewport, independent of any GPU API: the SDK's standard values as surface packets (over the SDK's display triangulation and shading normals, so Solid draws what Render renders), the one picker that answers rays and boxes ...
kinogaki-gltfglTFtestsglTF 2.0 and GLB, a format plugin for Kinogaki Studio.
kinogaki-harnessCore and the appnormalStudio's test harness: the real editor, its event routing and its background work, driven offscreen with only the packages a test names.
kinogaki-jpeg-formatJPEGtestsJPEG, a format plugin: a JPEG reads as one standard Image as the file holds it, and an Image writes as one baseline JPEG.
kinogaki-materialxMaterialXtestsMaterialX documents (.mtlx), a format plugin: a document's materials read as Studio's Materials, MaterialX networks of nodes, and Materials written as one.
kinogaki-networkCore and the apptestsStudio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core").
kinogaki-objOBJtestsWavefront OBJ, a format plugin: an OBJ file reads as one standard Geometry, its material libraries (mtllib) as MaterialX networks (materials) in a materials item before it; any polygons and polylines write as ...
kinogaki-pixelPixeltestsPixel, a realtime pixel-art render engine, as a Kinogaki Studio plugin.
kinogaki-png-formatPNGtestsPNG, a format plugin: a PNG reads as one standard Image as the file holds it, and an Image writes as one PNG.
kinogaki-projectCore and the apptestsStudio's project files: a document as a Prism document.
kinogaki-sceneCore and the apptestsStudio's scene: the document cooked object by object.
kinogaki-spectreSpectretestsSpectre, the spectral path tracer, as a Kinogaki Studio render plugin.
kinogaki-spectre-testingSpectrenormalWhat Spectre's GPU tests share (a dev-dependency of the plugin's tests alone): the engine on an offscreen device, waits on its wakes, and images compared with a tolerance.
kinogaki-studio-ui-api-testingSDKnormalThe UI layer's test support (a dev-dependency only): headless fakes of the host's UI for plugin unit tests: RecordingUi and RecordingPainter record what a plugin asks to show and draw, and play back scripted user actions, with no window and no GPU ...
kinogaki-testkitCore and the appnormalKinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin.
kinogaki-usdUSDtestsUniversal Scene Description as a format plugin for Kinogaki Studio: usda, usdc and usdz files read into the standard values and written from them.
kinogaki-workflowsWorkflowstestsTests alone: tests/workflows drives what a person does across the plugins the app ships, through the real editor offscreen.

Modules

Public types and traits

At the crate root

Traits ConsumerProducer

Structs CodecsFixturesInvariantsOutcomeReportUnconverted

By module: 7 public types and traits in 6 modules

checks CodecsInvariants

colors Unconverted

engine Waiter

engine::conformance Make

fixtures Fixtures

format Scratch

Besides these, 5 public functions at module level.