eugenegujing opened a new pull request, #7578: URL: https://github.com/apache/texera/pull/7578
### What changes were proposed in this PR? The new `FriesReconfigurationAlgorithmSpec` (16 tests) pins the algorithm's observable behaviors through `getReconfigurations`, with positive and negative assertions: - scope stays limited to the reconfigured operator when no one-to-many operator is upstream; - an upstream one-to-many operator with a reconfigured descendant is pulled into the scope together with the connecting path, and becomes the epoch-marker source; - one-to-many operators with no reconfigured descendant, one-to-many operators downstream of the target, and side branches are all excluded; - parallel branches between a one-to-many operator and the target are all included (diamond); - disconnected closures split into separate components with per-component reconfiguration sets and sources, while connected reconfigured operators merge into one component; - multiple one-to-many operators converging on the target yield a single component with multiple marker sources; - links are traversed on every input port, not just port 0; - edge cases: single-operator region, target that is itself a region source, target that is itself one-to-many, multiple executing regions handled independently, and an empty result when no region contains a target. Fixtures build small regions with `PhysicalOp`/`PhysicalLink` wiring (the closure walks per-operator port links) and stub `WorkflowExecutionManager.getExecutingRegions`, following the patterns of `RegionSpec` and `WorkflowExecutionManagerSpec`. No production code is changed. ### Any related issues, documentation, discussions? Closes #7573 ### How was this PR tested? This PR is itself test-only. The new spec was run with: ``` sbt "WorkflowExecutionService/testOnly *FriesReconfigurationAlgorithmSpec" ``` All 16 tests pass. The suite was additionally mutation-checked: four manual mutations of the algorithm (dropping forward-closure propagation, disabling the connected-component split, disabling the one-to-many pull-in, and returning whole components instead of intersecting with the source set) each caused multiple test failures, and the source was restored afterwards. `scalafmtCheck` passes. ### Was this PR authored or co-authored using generative AI tooling? Co-authored by: Claude Code (Claude Fable 5) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
