The GitHub Actions job "Required Checks" on texera.git/gh-readonly-queue/main/pr-5814-41123c0ad1ddfd3a805a562511d27660e4b14b73 has failed. Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).
Head commit for run: e2e87d604edfef8b18d552dbf3652302f1833136 / Xinyuan Lin <[email protected]> test(workflow-operator): add unit test coverage for row-count-shaping operator descriptors (#5814) ### What changes were proposed in this PR? Pin behavior of three previously-untested descriptors that shape/reduce output row counts in `common/workflow-operator/`. No production-code changes. | Spec | Source class | Tests | | --- | --- | --- | | `LimitOpDescSpec` | `LimitOpDesc` | 5 | | `RandomKSamplingOpDescSpec` | `RandomKSamplingOpDesc` | 3 | | `ReservoirSamplingOpDescSpec` | `ReservoirSamplingOpDesc` | 3 | All three spec files follow the `<srcClassName>Spec.scala` one-to-one convention. **Behavior pinned — `LimitOpDesc`** | Surface | Contract | | --- | --- | | `operatorInfo` | `Limit`, `CLEANING_GROUP`, 1-in/1-out, `supportReconfiguration == true` | | Polymorphic deserialize | `{"operatorType":"Limit","limit":N}` via `classOf[LogicalOp]` yields a `LimitOpDesc` with `limit == N` | | `getPhysicalOp` | non-parallelizable; wires `LimitOpExec`; ports carried forward | | `runtimeReconfiguration` | returns `Success` with a `StateTransferFunc`; the func copies the running `count` from the old `LimitOpExec` to the new one (exercised end-to-end with two real exec instances) | **Behavior pinned — `RandomKSamplingOpDesc`** | Surface | Contract | | --- | --- | | `operatorInfo` | `Random K Sampling`, `UTILITY_GROUP`, `supportReconfiguration == true` | | `percentage` round-trip | serializes under the spaced wire-key `random k sample percentage`; survives a polymorphic round-trip | | `getPhysicalOp` | wires `RandomKSamplingOpExec`; ports carried forward | **Behavior pinned — `ReservoirSamplingOpDesc`** | Surface | Contract | | --- | --- | | `operatorInfo` | `Reservoir Sampling`, `UTILITY_GROUP`, `supportReconfiguration == false` (the intentional difference vs RandomKSampling — pinned so a future "fix" that flips it is caught) | | `k` round-trip | serializes under the wire-key `number of item sampled in reservoir sampling` | | `getPhysicalOp` | wires `ReservoirSamplingOpExec`; ports carried forward | ### Any related issues, documentation, discussions? Closes #5807. ### How was this PR tested? Pure unit-test additions; verified locally with: - `sbt "WorkflowOperator/testOnly org.apache.texera.amber.operator.limit.LimitOpDescSpec org.apache.texera.amber.operator.randomksampling.RandomKSamplingOpDescSpec org.apache.texera.amber.operator.reservoirsampling.ReservoirSamplingOpDescSpec"` — 11 tests, all green - `sbt "WorkflowOperator/Test/scalafmtCheck"` and `sbt "WorkflowOperator/Test/scalafix --check"` — clean - CI to confirm ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 4.8 [1M context]) Report URL: https://github.com/apache/texera/actions/runs/27863593292 With regards, GitHub Actions via GitBox
