Skip to content

[#14002] improvement(test): Add container dependencies and the remaining Hive variants (part 5/6) - #14011

Open
nevzheng wants to merge 13 commits into
apache:mainfrom
nevzheng:claude/13900-tc-07-dependencies-hive-variants
Open

nevzheng wants to merge 13 commits into
apache:mainfrom
nevzheng:claude/13900-tc-07-dependencies-hive-variants

Conversation

@nevzheng

@nevzheng nevzheng commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

What changes were proposed in this pull request?

  • ContainerSpec.dependencies(): dependencies start first, deepest first, with a cycle check.
  • @ClickHouseFixture(nodes = 3) can inject a ClickHouseCluster.
  • Hive auth = RANGER (starts Ranger first) and storage = S3 | GCS | ABS (S3 starts LocalStack first); the CatalogHive IT family and the Ranger ITs use them.
  • HiveUserAuthenticationIT uses the Kerberos Hive fixture.

This PR includes the commits of the PRs below it. Review only its own commit: nevzheng/gravitino@claude/13900-tc-06-field-startup-db-fixtures...claude/13900-tc-07-dependencies-hive-variants

Why are the changes needed?

Part 5 of 6 of #14002.

Fix: #14002

Does this PR introduce any user-facing change?

No. Test code only.

How was this patch tested?

Unit tests; Docker runs of catalog-hive (including S3), the Ranger ITs and ClickHouse.

Stack: #14103 → #14083 → #14084 → #14085 → #14005 → #14006 → #14052 → #14076 → #14007 → #14008 → #14009 → #14010 → #14011 → #14012 → #14013 → #14079 → #14077 → #14078 → #14086 → #14087 → #14088 → #14089 → #14090 → #14091 → #14094

@nevzheng nevzheng self-assigned this Oct 20, 2026
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch 9 times, most recently from 9cf03df to 5b317c9 Compare October 21, 2026 06:19
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch from 5b317c9 to 249efe6 Compare October 21, 2026 07:09
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch from 249efe6 to 8671e43 Compare October 21, 2026 17:20
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch 2 times, most recently from 88143c7 to 841c3aa Compare October 21, 2026 19:44
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch 2 times, most recently from ee456c2 to 40dc3c0 Compare October 21, 2026 21:16
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch 9 times, most recently from a862537 to 1bfea04 Compare October 22, 2026 03:28
Design doc for apache#13900 and a rumdl config for design-docs/testing.
…e ContainerSuite lifecycle

- Log every container start with pull, start and readiness times; add test
  log4j configs so the lines show.
- Reset all ContainerSuite state in close(); key Hive by version; make the
  PostgreSQL retry wait; pin StarRocks; drop a dead start method.
- Poll readiness with no initial delay; run cleanDisk() only on real starts.
- idp-basic starts its containers once per run; Ryuk back on, unprivileged.
- Drop the suite-wide closes in Hive2, Flink and Spark ITs.
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch from 1bfea04 to 5124e65 Compare October 22, 2026 04:29
…est containers (part 1/6)

ContainerSpec, ContainerExtension and @FixtureContainer: a test declares a
container with a fixture annotation and receives it as a parameter or field.
Fixtures for Kafka, LocalStack, RustFS, StarRocks, OceanBase and Doris, with
their callers migrated.
…o, Ranger and Hive (part 2/6)

- TestImages declares every test image in one place.
- BaseContainer subclasses can supply their own container (ready for the
  official Testcontainers modules).
- Moto, Ranger and Hive (version, auth) fixtures.
- A container whose start fails is closed instead of leaking.
…add ClickHouse fixtures and scope (part 3/6)

- client-java, fileset, Hudi, Iceberg, Paimon, Iceberg REST, GVFS, Flink,
  Spark and Trino env tests use @HiveFixture.
- ClickHouse (1 or 3 nodes) and ZooKeeper fixtures.
- scope = RUN | CLASS | METHOD; HadoopUserAuthenticationIT gets a private
  Kerberos Hive.
…and PostgreSQL fixtures (part 4/6)

- Review follow-ups from the first fixture changes.
- A fixture annotation on a field picks that field's container.
- startup = EAGER | LAZY; a warning for fixtures no test injects.
- MySQL and PostgreSQL fixtures; SparkQueryRunner starts Hive through its
  spec.
- Only the run's closer closes the container suite.
- Split container start time into pull, start and readiness; give the Hive
  metastore check a real time budget.
…remaining Hive variants (part 5/6)

- ContainerSpec.dependencies(): dependencies start first, deepest first,
  with a cycle check.
- ClickHouseCluster injected for the three-node cluster.
- Hive auth = RANGER and storage = S3 | GCS | ABS; the CatalogHive IT family
  and the Ranger ITs use them.
- HiveUserAuthenticationIT on the Kerberos Hive fixture.
@nevzheng
nevzheng force-pushed the claude/13900-tc-07-dependencies-hive-variants branch from 5124e65 to f300f8b Compare October 22, 2026 04:46
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.

[Subtask] Add a JUnit fixture framework for test containers and move every caller to it

1 participant