9f6fb667c2
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 20s
CI / security (pull_request) Successful in 33s
CI / typecheck (pull_request) Successful in 34s
CI / integration_tests (pull_request) Successful in 2m45s
CI / unit_tests (pull_request) Successful in 13m14s
CI / docker (pull_request) Successful in 38s
CI / benchmark-regression (pull_request) Successful in 24m49s
CI / coverage (pull_request) Successful in 49m5s
CI / lint (push) Successful in 14s
CI / quality (push) Successful in 15s
CI / build (push) Successful in 14s
CI / security (push) Successful in 28s
CI / typecheck (push) Successful in 30s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 2m43s
CI / unit_tests (push) Successful in 13m9s
CI / docker (push) Successful in 39s
CI / benchmark-publish (push) Successful in 14m49s
CI / coverage (push) Successful in 47m53s
Implement SubplanExecutionService and SubplanMergeService to enable parent plans to decompose work into coordinated child subplans with configurable execution modes (sequential, parallel, dependency-ordered) and merge strategies (git_three_way, sequential_apply, fail_on_conflict, last_wins). - SubplanExecutionService: schedules subplan execution with retry support via SubplanFailureHandler, max_parallel limits, fail_fast semantics, and topological DAG ordering for dependency mode - SubplanMergeService: wraps sandbox merge infrastructure to combine subplan sandbox outputs using the configured merge strategy - BDD tests: 21 scenarios covering all execution modes, merge strategies, validation, and integration flows - Robot tests: 11 integration test cases with helper module - ASV benchmarks: performance benchmarks for execution and merge - Documentation: reference guide in docs/reference/subplans.md ISSUES CLOSED: #184
109 lines
5.4 KiB
Plaintext
109 lines
5.4 KiB
Plaintext
*** Settings ***
|
|
Documentation Smoke tests for subplan execution scheduler, merge strategies,
|
|
... and integrated execution+merge workflows.
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} robot/helper_subplan_execution.py
|
|
|
|
*** Test Cases ***
|
|
Sequential Execution Completes All Subplans
|
|
[Documentation] Verify sequential mode executes all subplans in order
|
|
[Tags] subplan execution sequential
|
|
${result}= Run Process ${PYTHON} ${HELPER} sequential-all cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} sequential-all-ok
|
|
|
|
Sequential Execution Stops On Fail Fast
|
|
[Documentation] Verify sequential fail_fast stops after first failure
|
|
[Tags] subplan execution sequential failfast
|
|
${result}= Run Process ${PYTHON} ${HELPER} sequential-failfast cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} sequential-failfast-ok
|
|
|
|
Parallel Execution Completes All Subplans
|
|
[Documentation] Verify parallel mode executes all subplans
|
|
[Tags] subplan execution parallel
|
|
${result}= Run Process ${PYTHON} ${HELPER} parallel-all cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} parallel-all-ok
|
|
|
|
Dependency Ordered Execution Respects DAG
|
|
[Documentation] Verify dependency-ordered mode follows topological order
|
|
[Tags] subplan execution dependency
|
|
${result}= Run Process ${PYTHON} ${HELPER} dep-ordered cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} dep-ordered-ok
|
|
|
|
Git Three Way Merge Non Overlapping
|
|
[Documentation] Verify git three-way merge combines non-overlapping changes
|
|
[Tags] subplan merge git
|
|
${result}= Run Process ${PYTHON} ${HELPER} merge-git-clean cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} merge-git-clean-ok
|
|
|
|
Sequential Apply Merge
|
|
[Documentation] Verify sequential apply merge strategy
|
|
[Tags] subplan merge sequential
|
|
${result}= Run Process ${PYTHON} ${HELPER} merge-sequential cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} merge-sequential-ok
|
|
|
|
Last Wins Merge Strategy
|
|
[Documentation] Verify last-wins merge strategy takes final output
|
|
[Tags] subplan merge lastwins
|
|
${result}= Run Process ${PYTHON} ${HELPER} merge-last-wins cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} merge-last-wins-ok
|
|
|
|
Fail On Conflict Merge Raises Error
|
|
[Documentation] Verify fail-on-conflict strategy raises error on conflicts
|
|
[Tags] subplan merge conflict
|
|
${result}= Run Process ${PYTHON} ${HELPER} merge-fail-conflict cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} merge-fail-conflict-ok
|
|
|
|
Execution With Merge Integration
|
|
[Documentation] Verify end-to-end execution and merge integration
|
|
[Tags] subplan execution merge integration
|
|
${result}= Run Process ${PYTHON} ${HELPER} exec-merge-integration cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} exec-merge-integration-ok
|
|
|
|
Service Validation Guards
|
|
[Documentation] Verify service rejects invalid inputs
|
|
[Tags] subplan validation
|
|
${result}= Run Process ${PYTHON} ${HELPER} validation-guards cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} validation-guards-ok
|
|
|
|
Execution Summary Report
|
|
[Documentation] Verify execution result reports correct summary
|
|
[Tags] subplan execution summary
|
|
${result}= Run Process ${PYTHON} ${HELPER} exec-summary cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} exec-summary-ok
|
|
|
|
Non Retriable Error Is Not Retried
|
|
[Documentation] Verify non-retriable errors are not retried
|
|
[Tags] subplan execution retry
|
|
${result}= Run Process ${PYTHON} ${HELPER} retry-non-retriable cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} retry-non-retriable-ok
|
|
|
|
Executor Exception Triggers Retry Then Succeeds
|
|
[Documentation] Verify executor exception triggers retry for retriable errors
|
|
[Tags] subplan execution retry
|
|
${result}= Run Process ${PYTHON} ${HELPER} retry-exception cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} retry-exception-ok
|
|
|
|
Merge Conflict During Execution
|
|
[Documentation] Verify merge conflict during execution marks result as failed
|
|
[Tags] subplan execution merge conflict
|
|
${result}= Run Process ${PYTHON} ${HELPER} merge-conflict-exec cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} merge-conflict-exec-ok
|