Skip to content

[Epic]: Setting up the OCI Runtime Spec test suite #12

Description

@michael-duren

Summary

The Open Container Initiative (OCI) provides a
collection of tools for working with the
OCI Runtime Specification.
There exists a runtime validation suite, which can be used to validate container
runtimes according to the
OCI Runtime Command Line Interface.

The goal for this epic is to research, implement and integrate the testing suite
mentioned here so we have an objective, upstream-defined measure of how close
box is to being a spec-compliant runtime.

NOTE: During active development the test suite might NOT pass since
features are still being developed. This epic is to be completed in parallel —
it lands the harness and lets the pass/fail set grow as the runtime matures.

Goals

  • We can run the upstream opencontainers/runtime-tools validation suite against
    the box binary with a single command.
  • box implements the OCI Runtime Command Line Interface (create, start,
    state, kill, delete) closely enough for the suite's harness to drive it.
  • The suite runs in CI as a non-blocking job so we can watch conformance
    improve over time without red-gating active development.
  • The set of passing vs. failing validation tests is visible and tracked, so
    progress against the runtime-spec is measurable.
  • How to run the suite locally is documented for contributors.

Tasks

Non-goals

  • Passing 100% of the validation suite by the end of this epic — features are
    still being built; the harness lands now, green checks accrue later.
  • Forking or re-implementing the upstream validation tests; we consume them.
  • Conformance for the OCI image or distribution specs — runtime spec only.

Open questions

  • Vendor the runtime-tools suite, pull it as a git submodule, or fetch it at
    test time in CI? (trade-off: reproducibility vs. repo size/churn)
  • Which runtime-spec version do we target first (runtime-spec v1.2.0, already a
    dependency in go.mod)?
  • Do rootless-only constraints on the dev machine limit which tests can run?

Target milestone

v0.1 — runtime-spec conformance harness

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicA high-level tracking issue grouping smaller tasksroadmapPlanned, roadmap-level work

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions