The GitHub Actions job "Required Checks" on 
texera.git/gh-readonly-queue/main/pr-5400-d9676a732a03e97962fca0d7537bbf79cfd51dc4
 has succeeded.
Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).

Head commit for run:
57640a74a333d0ba01b723704becac5d7e73238d / Xinyuan Lin <[email protected]>
test(workflow-core): add unit test coverage for core executor traits + factory 
(#5400)

### What changes were proposed in this PR?

`CoreExecutorReflectionSpec` (same package) already covered the basic
defaults of `OperatorExecutor` / `SourceOperatorExecutor` and the
`ExecFactory.newExecFromJavaClassName` happy paths +
`JavaRuntimeCompilation` failure path. This PR extends the existing spec
with five additional regression pins, without duplicating any existing
assertion.

| Surface | Pinned (new in this PR) |
| --- | --- |
| `OperatorExecutor.open` / `close` | A subclass override is reachable
from every call site that invokes `open` / `close` on the trait
(counter-based pin; a direct no-op-stub regression that bypassed
dispatch wouldn't fail the existing default-stays-no-op tests). |
| `OperatorExecutor.processTupleMultiPort` | The default wrapper hands
the input `port` verbatim to the subclass override (a regression that
hard-coded `port = 0` would be invisible to the basic delegation test).
Zero-emission and many-emission fan-out from the underlying
`processTuple` both pass through with `Option.empty` port. |
| `SourceOperatorExecutor.processTupleMultiPort` | The input-side path
never invokes `produceTuple` (counter-based pin; an accidental drain
that discarded results wouldn't fail an empty-iterator check). |
| `ExecFactory.newExecFromJavaClassName` | `NoSuchMethodException`
propagates when neither factory branch matches a fixture with only a
`(Long)` constructor (the existing tests pin the success paths and
`ClassNotFoundException`, not the "no constructor matches" branch). |

The PR body's earlier claim that "this package has no unit tests today"
was inaccurate; the existing spec was missed during my initial coverage
check because its `Reflection` suffix doesn't match any source-class
name pattern. Consolidated per Copilot review.

No production code changed; this is test-only.

### Any related issues, documentation, discussions?

Closes #5396

### How was this PR tested?

```
sbt "WorkflowCore/Test/testOnly 
org.apache.texera.amber.core.executor.CoreExecutorReflectionSpec"
# → 23 tests (18 pre-existing + 5 new), all pass

sbt "WorkflowCore/Test/scalafmtCheck"
# → clean
```

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Claude Opus 4.7)

Report URL: https://github.com/apache/texera/actions/runs/27075886006

With regards,
GitHub Actions via GitBox

Reply via email to