Skip to content

delta-harness: OpenHouse Iceberg behavioral test harness + guide - #682

Draft
mkuchenbecker wants to merge 2 commits into
linkedin:mainfrom
mkuchenbecker:mkuchenbecker/delta-harness-oss
Draft

delta-harness: OpenHouse Iceberg behavioral test harness + guide#682
mkuchenbecker wants to merge 2 commits into
linkedin:mainfrom
mkuchenbecker:mkuchenbecker/delta-harness-oss

Conversation

@mkuchenbecker

Copy link
Copy Markdown
Contributor

What

Adds delta-harness, a self-contained Scala behavioral test harness that characterizes OpenHouse + Apache Iceberg table behavior end-to-end. It crosses a large matrix of table layouts (partitioning, MoR/CoW, ordered writes, nested types) with DDL, DML, maintenance, branching/WAP, streaming, and negative-path operations. Each case asserts deltas against the observed pre-state, so it holds under any layout.

How it runs

  • Locally against a real embedded OpenHouse catalog: harness/openhouse/Env.scala boots OpenHouseLocalServer plus the OpenHouse Spark catalog. See run-openhouse.sh and HARNESS-GUIDE.md.
  • The scenario and framework sources are also structured as a publishable Gradle library module (openhouse-spark-delta-harness_2.12) that excludes the embedded-only Env, so a downstream environment can supply its own adapter and run the same matrix against a real cluster.
  • TESTING-MATRIX.md documents the matrix as a cross product of axes (operation family, data file format, partitioning, write mode, schema, preparation lineage, and reference routing).

Known bugs

Genuine product or upstream bugs are tagged in Plan.knownBugs with a prose explanation and skipped rather than silently passed, so the suite stays green while documenting the defect.

Status

Draft / work in progress. The library module compiles against main. Full local-run verification (embedded server) and CI wiring are still in progress.

Notes

Depends on com.linkedin.iceberg:iceberg-spark-runtime-3.5_2.12 (LinkedIn's published Iceberg fork), matching the rest of the OpenHouse Spark integration.

Testing Done

  • Local code review completed
  • Library module compiles against main (:integrations:spark:openhouse-spark-delta-harness_2.12:compileScala)
  • Full local embedded run
  • CI wiring

🤖 Generated with GitHub Copilot CLI

mkuchenbecker and others added 2 commits August 13, 2026 12:47
Adds a self-contained Scala behavioral test harness that characterizes
OpenHouse + Apache Iceberg table behavior end-to-end. The harness crosses a
large matrix of table layouts (partitioning, MoR/CoW, ordered writes, nested
types) with DDL, DML, maintenance, branching/WAP, streaming, and negative-path
operations, asserting deltas against observed pre-state so each case holds under
any layout.

It runs locally against a real embedded OpenHouse catalog (harness/openhouse/Env.scala
boots OpenHouseLocalServer + the OpenHouse Spark catalog; see run-openhouse.sh and
HARNESS-GUIDE.md). The scenario and framework sources are also structured as a
publishable Gradle library module (openhouse-spark-delta-harness_2.12) that
excludes the embedded-only Env so downstream environments can supply their own
adapter.

Genuine product or upstream bugs are tagged in Plan.knownBugs with a prose
explanation and skipped rather than silently passed, so the suite stays green
while documenting the defect.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds TESTING-MATRIX.md, a living reference that explains the harness as a cross
product of independent axes (operation family, data file format, partitioning,
write mode, schema, preparation lineage, and reference routing). Documents how a
case id reads, the CoreTable/NestedTypesTable/TypesTable schemas, the table
layouts, the preparation lineages, and each operation family including the DDL
sub-families.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant