8608584e99
CI / lint (pull_request) Successful in 38s
CI / typecheck (pull_request) Successful in 54s
CI / quality (pull_request) Successful in 39s
CI / security (pull_request) Successful in 1m4s
CI / build (pull_request) Successful in 28s
CI / helm (pull_request) Successful in 24s
CI / unit_tests (pull_request) Failing after 6m49s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 17m47s
CI / coverage (pull_request) Successful in 11m21s
CI / integration_tests (pull_request) Failing after 23m41s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 56m59s
Implemented optional SubplanService and SubplanExecutionService wiring in PlanExecutor.__init__() (None = no-op). - Added _spawn_subplans() helper: - Queries spawn decisions via SubplanService.get_spawn_decisions() and calls SubplanService.spawn() for each decision. - No-ops when there are no spawn decisions. - Added _execute_subplans() helper: - Delegates to SubplanExecutionService.execute_all() to run spawned subplans, handling both sequential and parallel groups as dictated by decisions. - Added _apply_subplan_results_to_plan() helper: - Updates parent plan status tracking when child subplans fail. - Annotates error_details with failed_subplan_ids when appropriate. - Integrated spawning and execution into existing flow: - Called _spawn_subplans() and _execute_subplans() from both _run_execute_with_runtime() and _run_execute_with_stub() after actor completion. - Introduced PlanExecutor properties: - subplan_service and subplan_execution_service for external wiring and testability. - Added tests and scenarios: - Behave feature file with 6 scenarios covering subplan_spawn, subplan_parallel_spawn, no-op, and failure tracking. - Robot Framework integration test suite with 6 end-to-end subplan spawning test cases. Key design decisions - Optional services (None = no-op) to maintain backward compatibility with existing deployments. - Subplan spawning is a no-op when no spawn decisions exist, avoiding unnecessary work. - Parent plan error_details is annotated with failed_subplan_ids when a child subplan fails to aid debugging and traceability. - Both runtime and stub execute paths share the same spawning logic to ensure consistent behavior across execution modes. ISSUES CLOSED: #3561
1527 lines
76 KiB
XML
1527 lines
76 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<robot generator="Robot 7.4.2 (Python 3.13.9 on linux)" generated="2026-04-05T20:44:42.871938" rpa="false" schemaversion="5">
|
|
<suite id="s1" name="Plan Executor Subplan Spawning & Subplan Spawn & Subplan Execution">
|
|
<suite id="s1-s1" name="Plan Executor Subplan Spawning" source="/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/robot/plan_executor_subplan_spawning.robot">
|
|
<kw name="Setup Test Environment" owner="common" type="SETUP">
|
|
<kw name="Log" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:42.995825" level="INFO">Setting up test environment</msg>
|
|
<arg>Setting up test environment</arg>
|
|
<doc>Logs the given message with the given level.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.995581" elapsed="0.000309"/>
|
|
</kw>
|
|
<kw name="Replace String" owner="String">
|
|
<msg time="2026-04-05T20:44:42.996223" level="INFO">${safe_suite} = Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning</msg>
|
|
<var>${safe_suite}</var>
|
|
<arg>${SUITE NAME}</arg>
|
|
<arg>${SPACE}</arg>
|
|
<arg>_</arg>
|
|
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.996005" elapsed="0.000244"/>
|
|
</kw>
|
|
<kw name="Set Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:42.996593" level="INFO">${home} = /tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning</msg>
|
|
<var>${home}</var>
|
|
<arg>${TEMPDIR}${/}.cleveragents_${safe_suite}</arg>
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.996338" elapsed="0.000276"/>
|
|
</kw>
|
|
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
|
|
<kw name="Remove Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:42.997241" level="INFO" html="true">Directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning</a>' does not exist.</msg>
|
|
<arg>${home}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Removes the directory pointed to by the given ``path``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.996958" elapsed="0.000325"/>
|
|
</kw>
|
|
<arg>Remove Directory</arg>
|
|
<arg>${home}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.996701" elapsed="0.000622"/>
|
|
</kw>
|
|
<kw name="Create Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:42.997623" level="INFO" html="true">Created directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning</a>'.</msg>
|
|
<arg>${home}</arg>
|
|
<doc>Creates the specified directory.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.997394" elapsed="0.000270"/>
|
|
</kw>
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:42.997848" level="INFO">Environment variable 'CLEVERAGENTS_HOME' set to value '/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning'.</msg>
|
|
<arg>CLEVERAGENTS_HOME</arg>
|
|
<arg>${home}</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.997732" elapsed="0.000150"/>
|
|
</kw>
|
|
<kw name="Set Suite Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:42.998687" level="INFO">${SUITE_HOME} = /tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning</msg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>${home}</arg>
|
|
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.997962" elapsed="0.000762"/>
|
|
</kw>
|
|
<kw name="Run Keyword If" owner="BuiltIn">
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:42.999164" level="INFO">Environment variable 'CLEVERAGENTS_AUTO_APPLY_MIGRATIONS' set to value 'true'.</msg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<arg>true</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.999076" elapsed="0.000121"/>
|
|
</kw>
|
|
<arg>${auto_apply_migrations}</arg>
|
|
<arg>Set Environment Variable</arg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<arg>true</arg>
|
|
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.998812" elapsed="0.000422"/>
|
|
</kw>
|
|
<kw name="Run Keyword If" owner="BuiltIn">
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:42.999628" level="INFO">Environment variable 'CLEVERAGENTS_TESTING_USE_MOCK_AI' set to value 'true'.</msg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<arg>true</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.999548" elapsed="0.000112"/>
|
|
</kw>
|
|
<arg>${mock_ai}</arg>
|
|
<arg>Set Environment Variable</arg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<arg>true</arg>
|
|
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.999315" elapsed="0.000381"/>
|
|
</kw>
|
|
<kw name="Evaluate" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:43.000068" level="INFO">${python_exec} = /tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python</msg>
|
|
<var>${python_exec}</var>
|
|
<arg>sys.executable</arg>
|
|
<arg>sys</arg>
|
|
<doc>Evaluates the given expression in Python and returns the result.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.999771" elapsed="0.000318"/>
|
|
</kw>
|
|
<kw name="Set Suite Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:43.000395" level="INFO">${PYTHON} = /tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python</msg>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${python_exec}</arg>
|
|
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:43.000169" elapsed="0.000257"/>
|
|
</kw>
|
|
<doc>Setup common test environment with per-suite isolation.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.994987" elapsed="0.005494"/>
|
|
</kw>
|
|
<test id="s1-s1-t1" name="Subplan Spawn Decision Realisation" line="14">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:43.004806" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_plan_executor_subplan_spawning.py spawn-decision-realisation</msg>
|
|
<msg time="2026-04-05T20:44:43.005488" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:44.484604" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:44.484755" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>spawn-decision-realisation</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:43.000986" elapsed="1.483793"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:44.485526" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:44.484937" elapsed="0.000642"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>spawn-decision-realisation-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:44.485663" elapsed="0.000569"/>
|
|
</kw>
|
|
<doc>Verify subplan_spawn decision triggers SubplanService.spawn
|
|
and SubplanExecutionService.execute_all during Execute phase</doc>
|
|
<tag>execute</tag>
|
|
<tag>integration</tag>
|
|
<tag>plan</tag>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:43.000551" elapsed="1.485855"/>
|
|
</test>
|
|
<test id="s1-s1-t2" name="Parallel Subplan Spawn Decision Realisation" line="22">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:44.487231" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_plan_executor_subplan_spawning.py parallel-spawn-decision-realisation</msg>
|
|
<msg time="2026-04-05T20:44:44.487826" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:45.979050" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:45.979251" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>parallel-spawn-decision-realisation</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:44.486912" elapsed="1.492362"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:45.980061" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:45.979442" elapsed="0.000666"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>parallel-spawn-decision-realisation-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:45.980190" elapsed="0.000444"/>
|
|
</kw>
|
|
<doc>Verify subplan_parallel_spawn decision triggers parallel execution</doc>
|
|
<tag>execute</tag>
|
|
<tag>integration</tag>
|
|
<tag>parallel</tag>
|
|
<tag>plan</tag>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:44.486585" elapsed="1.494145"/>
|
|
</test>
|
|
<test id="s1-s1-t3" name="No-Op When No Spawn Decisions" line="29">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:45.981539" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_plan_executor_subplan_spawning.py noop-no-spawn-decisions</msg>
|
|
<msg time="2026-04-05T20:44:45.982120" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:47.677300" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:47.677490" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>noop-no-spawn-decisions</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:45.981243" elapsed="1.696269"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:47.678301" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:47.677676" elapsed="0.000673"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>noop-no-spawn-decisions-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:47.678438" elapsed="0.000511"/>
|
|
</kw>
|
|
<doc>Verify execute phase is a no-op for subplans when no spawn decisions exist</doc>
|
|
<tag>execute</tag>
|
|
<tag>integration</tag>
|
|
<tag>noop</tag>
|
|
<tag>plan</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:45.980920" elapsed="1.698135"/>
|
|
</test>
|
|
<test id="s1-s1-t4" name="No-Op When SubplanService Not Configured" line="36">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:47.679869" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_plan_executor_subplan_spawning.py noop-no-subplan-service</msg>
|
|
<msg time="2026-04-05T20:44:47.680477" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:49.185845" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:49.186068" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>noop-no-subplan-service</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:47.679561" elapsed="1.506532"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:49.186961" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:49.186283" elapsed="0.000745"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>noop-no-subplan-service-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:49.187131" elapsed="0.000459"/>
|
|
</kw>
|
|
<doc>Verify execute phase completes normally when SubplanService is absent</doc>
|
|
<tag>execute</tag>
|
|
<tag>integration</tag>
|
|
<tag>noop</tag>
|
|
<tag>plan</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:47.679230" elapsed="1.508452"/>
|
|
</test>
|
|
<test id="s1-s1-t5" name="Parent Plan Status Tracking On Child Failure" line="43">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:49.188515" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_plan_executor_subplan_spawning.py parent-status-tracking-failure</msg>
|
|
<msg time="2026-04-05T20:44:49.189115" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:50.693136" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:50.693321" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>parent-status-tracking-failure</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:49.188210" elapsed="1.505134"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:50.694105" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:50.693506" elapsed="0.000646"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>parent-status-tracking-failure-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:50.694234" elapsed="0.000428"/>
|
|
</kw>
|
|
<doc>Verify parent plan error_details records failed subplan IDs</doc>
|
|
<tag>execute</tag>
|
|
<tag>failure</tag>
|
|
<tag>integration</tag>
|
|
<tag>plan</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:49.187864" elapsed="1.506886"/>
|
|
</test>
|
|
<test id="s1-s1-t6" name="SubplanService Properties Exposed" line="50">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:50.695557" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_plan_executor_subplan_spawning.py subplan-service-properties</msg>
|
|
<msg time="2026-04-05T20:44:50.696143" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:52.163826" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:52.164057" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>subplan-service-properties</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:50.695262" elapsed="1.468832"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:52.165278" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.164416" elapsed="0.000943"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>subplan-service-properties-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.165544" elapsed="0.000734"/>
|
|
</kw>
|
|
<doc>Verify PlanExecutor exposes subplan_service and subplan_execution_service properties</doc>
|
|
<tag>execute</tag>
|
|
<tag>integration</tag>
|
|
<tag>plan</tag>
|
|
<tag>properties</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:50.694917" elapsed="1.471494"/>
|
|
</test>
|
|
<kw name="Cleanup Test Environment" owner="common" type="TEARDOWN">
|
|
<kw name="Log" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:52.167656" level="INFO">Cleaning up test environment</msg>
|
|
<arg>Cleaning up test environment</arg>
|
|
<doc>Logs the given message with the given level.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.167388" elapsed="0.000328"/>
|
|
</kw>
|
|
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
|
|
<kw name="Remove Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.168659" level="INFO" html="true">Removed directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Plan_Executor_Subplan_Spawning</a>'.</msg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Removes the directory pointed to by the given ``path``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.168166" elapsed="0.000559"/>
|
|
</kw>
|
|
<arg>Remove Directory</arg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.167844" elapsed="0.000940"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.169019" level="INFO">Environment variable 'CLEVERAGENTS_HOME' deleted.</msg>
|
|
<arg>CLEVERAGENTS_HOME</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.168901" elapsed="0.000164"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.169251" level="INFO">Environment variable 'CLEVERAGENTS_AUTO_APPLY_MIGRATIONS' deleted.</msg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.169162" elapsed="0.000132"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.169477" level="INFO">Environment variable 'CLEVERAGENTS_TESTING_USE_MOCK_AI' deleted.</msg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.169390" elapsed="0.000129"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.169704" level="INFO">Environment variable 'CLEVERAGENTS_DATABASE_URL' does not exist.</msg>
|
|
<arg>CLEVERAGENTS_DATABASE_URL</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.169614" elapsed="0.000131"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.169922" level="INFO">Environment variable 'CLEVERAGENTS_TEST_DATABASE_URL' does not exist.</msg>
|
|
<arg>CLEVERAGENTS_TEST_DATABASE_URL</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.169838" elapsed="0.000125"/>
|
|
</kw>
|
|
<doc>Clean up after tests.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.167153" elapsed="0.002889"/>
|
|
</kw>
|
|
<doc>Integration tests for PlanExecutor subplan spawning.
|
|
Verifies that subplan_spawn and subplan_parallel_spawn
|
|
decisions are realised as actual child plan executions
|
|
during the Execute phase (Forgejo #3561).</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:42.946058" elapsed="9.224024"/>
|
|
</suite>
|
|
<suite id="s1-s2" name="Subplan Spawn" source="/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/robot/subplan_spawn.robot">
|
|
<kw name="Setup Test Environment" owner="common" type="SETUP">
|
|
<kw name="Log" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:52.174302" level="INFO">Setting up test environment</msg>
|
|
<arg>Setting up test environment</arg>
|
|
<doc>Logs the given message with the given level.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.174056" elapsed="0.000302"/>
|
|
</kw>
|
|
<kw name="Replace String" owner="String">
|
|
<msg time="2026-04-05T20:44:52.174730" level="INFO">${safe_suite} = Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn</msg>
|
|
<var>${safe_suite}</var>
|
|
<arg>${SUITE NAME}</arg>
|
|
<arg>${SPACE}</arg>
|
|
<arg>_</arg>
|
|
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.174477" elapsed="0.000282"/>
|
|
</kw>
|
|
<kw name="Set Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:52.175292" level="INFO">${home} = /tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn</msg>
|
|
<var>${home}</var>
|
|
<arg>${TEMPDIR}${/}.cleveragents_${safe_suite}</arg>
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.174880" elapsed="0.000442"/>
|
|
</kw>
|
|
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
|
|
<kw name="Remove Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.176065" level="INFO" html="true">Directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn</a>' does not exist.</msg>
|
|
<arg>${home}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Removes the directory pointed to by the given ``path``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.175754" elapsed="0.000368"/>
|
|
</kw>
|
|
<arg>Remove Directory</arg>
|
|
<arg>${home}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.175444" elapsed="0.000733"/>
|
|
</kw>
|
|
<kw name="Create Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.176582" level="INFO" html="true">Created directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn</a>'.</msg>
|
|
<arg>${home}</arg>
|
|
<doc>Creates the specified directory.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.176284" elapsed="0.000355"/>
|
|
</kw>
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.176904" level="INFO">Environment variable 'CLEVERAGENTS_HOME' set to value '/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn'.</msg>
|
|
<arg>CLEVERAGENTS_HOME</arg>
|
|
<arg>${home}</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.176743" elapsed="0.000208"/>
|
|
</kw>
|
|
<kw name="Set Suite Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:52.178179" level="INFO">${SUITE_HOME} = /tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn</msg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>${home}</arg>
|
|
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.177086" elapsed="0.001234"/>
|
|
</kw>
|
|
<kw name="Run Keyword If" owner="BuiltIn">
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.178964" level="INFO">Environment variable 'CLEVERAGENTS_AUTO_APPLY_MIGRATIONS' set to value 'true'.</msg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<arg>true</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.178837" elapsed="0.000186"/>
|
|
</kw>
|
|
<arg>${auto_apply_migrations}</arg>
|
|
<arg>Set Environment Variable</arg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<arg>true</arg>
|
|
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.178465" elapsed="0.000614"/>
|
|
</kw>
|
|
<kw name="Run Keyword If" owner="BuiltIn">
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:44:52.179660" level="INFO">Environment variable 'CLEVERAGENTS_TESTING_USE_MOCK_AI' set to value 'true'.</msg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<arg>true</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.179548" elapsed="0.000158"/>
|
|
</kw>
|
|
<arg>${mock_ai}</arg>
|
|
<arg>Set Environment Variable</arg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<arg>true</arg>
|
|
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.179204" elapsed="0.000558"/>
|
|
</kw>
|
|
<kw name="Evaluate" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:52.180232" level="INFO">${python_exec} = /tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python</msg>
|
|
<var>${python_exec}</var>
|
|
<arg>sys.executable</arg>
|
|
<arg>sys</arg>
|
|
<doc>Evaluates the given expression in Python and returns the result.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.179878" elapsed="0.000383"/>
|
|
</kw>
|
|
<kw name="Set Suite Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:52.180707" level="INFO">${PYTHON} = /tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python</msg>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${python_exec}</arg>
|
|
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.180382" elapsed="0.000368"/>
|
|
</kw>
|
|
<doc>Setup common test environment with per-suite isolation.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.173733" elapsed="0.007086"/>
|
|
</kw>
|
|
<test id="s1-s2-t1" name="Spawn Single Child Plan From Decision Entry" line="12">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:52.181802" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_spawn.py spawn-single</msg>
|
|
<msg time="2026-04-05T20:44:52.182431" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:53.405148" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:53.405346" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>spawn-single</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.181393" elapsed="1.223975"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:53.406153" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:53.405532" elapsed="0.000668"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>spawn-single-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:53.406280" elapsed="0.000429"/>
|
|
</kw>
|
|
<doc>Verify spawning a single child plan creates status and metadata</doc>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:52.180889" elapsed="1.225908"/>
|
|
</test>
|
|
<test id="s1-s2-t2" name="Spawn Multiple Child Plans From Decisions" line="19">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:53.407590" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_spawn.py spawn-multiple</msg>
|
|
<msg time="2026-04-05T20:44:53.408166" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:54.620131" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:54.620323" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>spawn-multiple</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:53.407281" elapsed="1.213076"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:54.621368" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:54.620563" elapsed="0.000871"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>spawn-multiple-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:54.621555" elapsed="0.000652"/>
|
|
</kw>
|
|
<doc>Verify spawning multiple child plans from decision entries</doc>
|
|
<tag>multiple</tag>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:53.406962" elapsed="1.215370"/>
|
|
</test>
|
|
<test id="s1-s2-t3" name="Validate Resource Scope Missing" line="26">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:54.623377" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_spawn.py validate-resource</msg>
|
|
<msg time="2026-04-05T20:44:54.624130" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:55.844080" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:55.844224" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>validate-resource</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:54.622965" elapsed="1.221282"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:55.844933" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:55.844395" elapsed="0.000597"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>validate-resource-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:55.845075" elapsed="0.000428"/>
|
|
</kw>
|
|
<doc>Verify validation rejects missing resource scopes</doc>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<tag>validation</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:54.622549" elapsed="1.223042"/>
|
|
</test>
|
|
<test id="s1-s2-t4" name="Validate Max Parallel Exceeded" line="33">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:55.846336" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_spawn.py validate-max-parallel</msg>
|
|
<msg time="2026-04-05T20:44:55.846873" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:57.121498" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:57.121701" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>validate-max-parallel</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:55.846036" elapsed="1.275689"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:57.122521" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:57.121894" elapsed="0.000674"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>validate-max-parallel-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:57.122652" elapsed="0.000440"/>
|
|
</kw>
|
|
<doc>Verify validation rejects exceeding max_parallel bounds</doc>
|
|
<tag>parallel</tag>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<tag>validation</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:55.845745" elapsed="1.277436"/>
|
|
</test>
|
|
<test id="s1-s2-t5" name="Spawn Metadata Persistence" line="40">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:57.123932" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_spawn.py metadata-persistence</msg>
|
|
<msg time="2026-04-05T20:44:57.124537" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:58.345739" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:58.346004" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>metadata-persistence</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:57.123644" elapsed="1.222397"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:58.347148" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:58.346271" elapsed="0.000945"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>metadata-persistence-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:58.347337" elapsed="0.000674"/>
|
|
</kw>
|
|
<doc>Verify spawn metadata contains correct plan IDs and mode</doc>
|
|
<tag>metadata</tag>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:57.123349" elapsed="1.224790"/>
|
|
</test>
|
|
<test id="s1-s2-t6" name="Service Validation Guards" line="47">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:58.349222" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_spawn.py validation-guards</msg>
|
|
<msg time="2026-04-05T20:44:58.349874" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:44:59.562788" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:44:59.562987" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>validation-guards</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:58.348787" elapsed="1.214223"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:44:59.563784" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:59.563176" elapsed="0.000654"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>validation-guards-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:59.563912" elapsed="0.000433"/>
|
|
</kw>
|
|
<doc>Verify service rejects invalid inputs</doc>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<tag>validation</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:58.348374" elapsed="1.216068"/>
|
|
</test>
|
|
<test id="s1-s2-t7" name="Build Spawn Entries From Decisions" line="54">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:44:59.565215" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_spawn.py build-entries</msg>
|
|
<msg time="2026-04-05T20:44:59.565822" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:00.823129" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:00.823272" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>build-entries</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:59.564914" elapsed="1.258379"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:00.823997" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.823446" elapsed="0.000597"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>build-entries-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.824126" elapsed="0.000416"/>
|
|
</kw>
|
|
<doc>Verify building spawn entries from decision objects</doc>
|
|
<tag>entries</tag>
|
|
<tag>spawn</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:44:59.564607" elapsed="1.260024"/>
|
|
</test>
|
|
<kw name="Cleanup Test Environment" owner="common" type="TEARDOWN">
|
|
<kw name="Log" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:00.825332" level="INFO">Cleaning up test environment</msg>
|
|
<arg>Cleaning up test environment</arg>
|
|
<doc>Logs the given message with the given level.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.825173" elapsed="0.000192"/>
|
|
</kw>
|
|
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
|
|
<kw name="Remove Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.826079" level="INFO" html="true">Removed directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Spawn</a>'.</msg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Removes the directory pointed to by the given ``path``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.825656" elapsed="0.000465"/>
|
|
</kw>
|
|
<arg>Remove Directory</arg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.825448" elapsed="0.000711"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.826301" level="INFO">Environment variable 'CLEVERAGENTS_HOME' deleted.</msg>
|
|
<arg>CLEVERAGENTS_HOME</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.826231" elapsed="0.000100"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.826938" level="INFO">Environment variable 'CLEVERAGENTS_AUTO_APPLY_MIGRATIONS' deleted.</msg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.826394" elapsed="0.000585"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.827175" level="INFO">Environment variable 'CLEVERAGENTS_TESTING_USE_MOCK_AI' deleted.</msg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.827109" elapsed="0.000095"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.827326" level="INFO">Environment variable 'CLEVERAGENTS_DATABASE_URL' does not exist.</msg>
|
|
<arg>CLEVERAGENTS_DATABASE_URL</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.827267" elapsed="0.000086"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.827471" level="INFO">Environment variable 'CLEVERAGENTS_TEST_DATABASE_URL' does not exist.</msg>
|
|
<arg>CLEVERAGENTS_TEST_DATABASE_URL</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.827414" elapsed="0.000084"/>
|
|
</kw>
|
|
<doc>Clean up after tests.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.825027" elapsed="0.002511"/>
|
|
</kw>
|
|
<doc>Smoke tests for subplan spawn service, validation,
|
|
and metadata persistence.</doc>
|
|
<status status="PASS" start="2026-04-05T20:44:52.170821" elapsed="8.656739"/>
|
|
</suite>
|
|
<suite id="s1-s3" name="Subplan Execution" source="/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/robot/subplan_execution.robot">
|
|
<kw name="Setup Test Environment" owner="common" type="SETUP">
|
|
<kw name="Log" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:00.830260" level="INFO">Setting up test environment</msg>
|
|
<arg>Setting up test environment</arg>
|
|
<doc>Logs the given message with the given level.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.830086" elapsed="0.000210"/>
|
|
</kw>
|
|
<kw name="Replace String" owner="String">
|
|
<msg time="2026-04-05T20:45:00.830542" level="INFO">${safe_suite} = Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution</msg>
|
|
<var>${safe_suite}</var>
|
|
<arg>${SUITE NAME}</arg>
|
|
<arg>${SPACE}</arg>
|
|
<arg>_</arg>
|
|
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.830374" elapsed="0.000188"/>
|
|
</kw>
|
|
<kw name="Set Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:00.830874" level="INFO">${home} = /tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution</msg>
|
|
<var>${home}</var>
|
|
<arg>${TEMPDIR}${/}.cleveragents_${safe_suite}</arg>
|
|
<doc>Returns the given values which can then be assigned to a variables.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.830641" elapsed="0.000252"/>
|
|
</kw>
|
|
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
|
|
<kw name="Remove Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.831413" level="INFO" html="true">Directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution</a>' does not exist.</msg>
|
|
<arg>${home}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Removes the directory pointed to by the given ``path``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.831189" elapsed="0.000263"/>
|
|
</kw>
|
|
<arg>Remove Directory</arg>
|
|
<arg>${home}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.830981" elapsed="0.000507"/>
|
|
</kw>
|
|
<kw name="Create Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.831740" level="INFO" html="true">Created directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution</a>'.</msg>
|
|
<arg>${home}</arg>
|
|
<doc>Creates the specified directory.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.831555" elapsed="0.000223"/>
|
|
</kw>
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.831949" level="INFO">Environment variable 'CLEVERAGENTS_HOME' set to value '/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution'.</msg>
|
|
<arg>CLEVERAGENTS_HOME</arg>
|
|
<arg>${home}</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.831843" elapsed="0.000144"/>
|
|
</kw>
|
|
<kw name="Set Suite Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:00.832697" level="INFO">${SUITE_HOME} = /tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution</msg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>${home}</arg>
|
|
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.832065" elapsed="0.000666"/>
|
|
</kw>
|
|
<kw name="Run Keyword If" owner="BuiltIn">
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.833152" level="INFO">Environment variable 'CLEVERAGENTS_AUTO_APPLY_MIGRATIONS' set to value 'true'.</msg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<arg>true</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.833070" elapsed="0.000113"/>
|
|
</kw>
|
|
<arg>${auto_apply_migrations}</arg>
|
|
<arg>Set Environment Variable</arg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<arg>true</arg>
|
|
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.832818" elapsed="0.000402"/>
|
|
</kw>
|
|
<kw name="Run Keyword If" owner="BuiltIn">
|
|
<kw name="Set Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:00.833617" level="INFO">Environment variable 'CLEVERAGENTS_TESTING_USE_MOCK_AI' set to value 'true'.</msg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<arg>true</arg>
|
|
<doc>Sets an environment variable to a specified value.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.833537" elapsed="0.000112"/>
|
|
</kw>
|
|
<arg>${mock_ai}</arg>
|
|
<arg>Set Environment Variable</arg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<arg>true</arg>
|
|
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.833302" elapsed="0.000384"/>
|
|
</kw>
|
|
<kw name="Evaluate" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:00.834005" level="INFO">${python_exec} = /tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python</msg>
|
|
<var>${python_exec}</var>
|
|
<arg>sys.executable</arg>
|
|
<arg>sys</arg>
|
|
<doc>Evaluates the given expression in Python and returns the result.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.833760" elapsed="0.000265"/>
|
|
</kw>
|
|
<kw name="Set Suite Variable" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:00.834323" level="INFO">${PYTHON} = /tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python</msg>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${python_exec}</arg>
|
|
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.834106" elapsed="0.000247"/>
|
|
</kw>
|
|
<doc>Setup common test environment with per-suite isolation.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.829879" elapsed="0.004522"/>
|
|
</kw>
|
|
<test id="s1-s3-t1" name="Sequential Execution Completes All Subplans" line="12">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:00.835077" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py sequential-all</msg>
|
|
<msg time="2026-04-05T20:45:00.835666" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:02.022069" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:02.022265" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>sequential-all</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.834776" elapsed="1.187512"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:02.023062" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:02.022449" elapsed="0.000660"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>sequential-all-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:02.023194" elapsed="0.000441"/>
|
|
</kw>
|
|
<doc>Verify sequential mode executes all subplans in order</doc>
|
|
<tag>execution</tag>
|
|
<tag>sequential</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:00.834450" elapsed="1.189277"/>
|
|
</test>
|
|
<test id="s1-s3-t2" name="Sequential Execution Stops On Fail Fast" line="19">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:02.024556" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py sequential-failfast</msg>
|
|
<msg time="2026-04-05T20:45:02.025192" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:03.262344" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:03.262542" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>sequential-failfast</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:02.024239" elapsed="1.238326"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:03.263346" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:03.262731" elapsed="0.000660"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>sequential-failfast-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:03.263471" elapsed="0.000425"/>
|
|
</kw>
|
|
<doc>Verify sequential fail_fast stops after first failure</doc>
|
|
<tag>execution</tag>
|
|
<tag>failfast</tag>
|
|
<tag>sequential</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:02.023905" elapsed="1.240094"/>
|
|
</test>
|
|
<test id="s1-s3-t3" name="Parallel Execution Completes All Subplans" line="26">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:03.264750" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py parallel-all</msg>
|
|
<msg time="2026-04-05T20:45:03.265324" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:04.457148" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:04.457289" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>parallel-all</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:03.264461" elapsed="1.192850"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:04.458010" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:04.457457" elapsed="0.000599"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>parallel-all-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:04.458138" elapsed="0.000420"/>
|
|
</kw>
|
|
<doc>Verify parallel mode executes all subplans</doc>
|
|
<tag>execution</tag>
|
|
<tag>parallel</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:03.264165" elapsed="1.194481"/>
|
|
</test>
|
|
<test id="s1-s3-t4" name="Dependency Ordered Execution Respects DAG" line="33">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:04.459397" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py dep-ordered</msg>
|
|
<msg time="2026-04-05T20:45:04.460088" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:05.679206" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:05.679390" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>dep-ordered</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:04.459104" elapsed="1.220308"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:05.680192" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:05.679572" elapsed="0.000666"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>dep-ordered-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:05.680320" elapsed="0.000430"/>
|
|
</kw>
|
|
<doc>Verify dependency-ordered mode follows topological order</doc>
|
|
<tag>dependency</tag>
|
|
<tag>execution</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:04.458806" elapsed="1.222033"/>
|
|
</test>
|
|
<test id="s1-s3-t5" name="Git Three Way Merge Non Overlapping" line="40">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:05.681611" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py merge-git-clean</msg>
|
|
<msg time="2026-04-05T20:45:05.682230" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:06.938146" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:06.938290" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>merge-git-clean</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:05.681321" elapsed="1.256992"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:06.939014" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:06.938459" elapsed="0.000601"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>merge-git-clean-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:06.939140" elapsed="0.000417"/>
|
|
</kw>
|
|
<doc>Verify git three-way merge combines non-overlapping changes</doc>
|
|
<tag>git</tag>
|
|
<tag>merge</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:05.681014" elapsed="1.258628"/>
|
|
</test>
|
|
<test id="s1-s3-t6" name="Sequential Apply Merge" line="47">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:06.940433" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py merge-sequential</msg>
|
|
<msg time="2026-04-05T20:45:06.941250" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:08.154610" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:08.154809" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>merge-sequential</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:06.940147" elapsed="1.214686"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:08.155625" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:08.155013" elapsed="0.000664"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>merge-sequential-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:08.155774" elapsed="0.000462"/>
|
|
</kw>
|
|
<doc>Verify sequential apply merge strategy</doc>
|
|
<tag>merge</tag>
|
|
<tag>sequential</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:06.939795" elapsed="1.216533"/>
|
|
</test>
|
|
<test id="s1-s3-t7" name="Last Wins Merge Strategy" line="54">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:08.157118" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py merge-last-wins</msg>
|
|
<msg time="2026-04-05T20:45:08.157704" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:09.405346" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:09.405543" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>merge-last-wins</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:08.156802" elapsed="1.248763"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:09.406354" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:09.405729" elapsed="0.000672"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>merge-last-wins-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:09.406485" elapsed="0.000438"/>
|
|
</kw>
|
|
<doc>Verify last-wins merge strategy takes final output</doc>
|
|
<tag>lastwins</tag>
|
|
<tag>merge</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:08.156506" elapsed="1.250514"/>
|
|
</test>
|
|
<test id="s1-s3-t8" name="Fail On Conflict Merge Raises Error" line="61">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:09.407871" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py merge-fail-conflict</msg>
|
|
<msg time="2026-04-05T20:45:09.408473" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:10.652304" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:10.652507" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>merge-fail-conflict</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:09.407544" elapsed="1.244986"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:10.653329" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:10.652699" elapsed="0.000678"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>merge-fail-conflict-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:10.653458" elapsed="0.000423"/>
|
|
</kw>
|
|
<doc>Verify fail-on-conflict strategy raises error on conflicts</doc>
|
|
<tag>conflict</tag>
|
|
<tag>merge</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:09.407194" elapsed="1.246783"/>
|
|
</test>
|
|
<test id="s1-s3-t9" name="Execution With Merge Integration" line="68">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:10.654729" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py exec-merge-integration</msg>
|
|
<msg time="2026-04-05T20:45:10.655309" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:11.837033" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:11.837180" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>exec-merge-integration</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:10.654438" elapsed="1.182763"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:11.837908" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:11.837351" elapsed="0.000602"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>exec-merge-integration-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:11.838044" elapsed="0.000417"/>
|
|
</kw>
|
|
<doc>Verify end-to-end execution and merge integration</doc>
|
|
<tag>execution</tag>
|
|
<tag>integration</tag>
|
|
<tag>merge</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:10.654145" elapsed="1.184401"/>
|
|
</test>
|
|
<test id="s1-s3-t10" name="Service Validation Guards" line="75">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:11.839240" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py validation-guards</msg>
|
|
<msg time="2026-04-05T20:45:11.839835" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:13.026250" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:13.026443" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>validation-guards</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:11.838953" elapsed="1.187532"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:13.027274" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:13.026650" elapsed="0.000670"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>validation-guards-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:13.027403" elapsed="0.000430"/>
|
|
</kw>
|
|
<doc>Verify service rejects invalid inputs</doc>
|
|
<tag>subplan</tag>
|
|
<tag>validation</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:11.838700" elapsed="1.189317"/>
|
|
</test>
|
|
<test id="s1-s3-t11" name="Execution Summary Report" line="82">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:13.028757" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py exec-summary</msg>
|
|
<msg time="2026-04-05T20:45:13.029370" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:14.224119" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:14.224316" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>exec-summary</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:13.028467" elapsed="1.195871"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:14.225112" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:14.224506" elapsed="0.000651"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>exec-summary-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:14.225237" elapsed="0.000428"/>
|
|
</kw>
|
|
<doc>Verify execution result reports correct summary</doc>
|
|
<tag>execution</tag>
|
|
<tag>subplan</tag>
|
|
<tag>summary</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:13.028182" elapsed="1.197569"/>
|
|
</test>
|
|
<test id="s1-s3-t12" name="Non Retriable Error Is Not Retried" line="89">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:14.226528" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py retry-non-retriable</msg>
|
|
<msg time="2026-04-05T20:45:14.227096" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:15.409459" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:15.409652" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>retry-non-retriable</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:14.226221" elapsed="1.183454"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:15.410461" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:15.409845" elapsed="0.000662"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>retry-non-retriable-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:15.410591" elapsed="0.000435"/>
|
|
</kw>
|
|
<doc>Verify non-retriable errors are not retried</doc>
|
|
<tag>execution</tag>
|
|
<tag>retry</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:14.225918" elapsed="1.185197"/>
|
|
</test>
|
|
<test id="s1-s3-t13" name="Executor Exception Triggers Retry Then Succeeds" line="96">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:15.411890" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py retry-exception</msg>
|
|
<msg time="2026-04-05T20:45:15.412434" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:16.581269" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:16.581469" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>retry-exception</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:15.411600" elapsed="1.169891"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:16.582288" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:16.581655" elapsed="0.000678"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>retry-exception-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:16.582415" elapsed="0.000424"/>
|
|
</kw>
|
|
<doc>Verify executor exception triggers retry for retriable errors</doc>
|
|
<tag>execution</tag>
|
|
<tag>retry</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:15.411285" elapsed="1.171641"/>
|
|
</test>
|
|
<test id="s1-s3-t14" name="Merge Conflict During Execution" line="103">
|
|
<kw name="Run Process" owner="Process">
|
|
<msg time="2026-04-05T20:45:16.583693" level="INFO">Starting process:
|
|
/tmp/cleveragents-fix-m5-plan-executor-subplan-spawning/.nox/unit_tests-3-13/bin/python robot/helper_subplan_execution.py merge-conflict-exec</msg>
|
|
<msg time="2026-04-05T20:45:16.584324" level="INFO">Waiting for process to complete.</msg>
|
|
<msg time="2026-04-05T20:45:17.809077" level="INFO">Process completed.</msg>
|
|
<msg time="2026-04-05T20:45:17.809285" level="INFO">${result} = <result object with rc 0></msg>
|
|
<var>${result}</var>
|
|
<arg>${PYTHON}</arg>
|
|
<arg>${HELPER}</arg>
|
|
<arg>merge-conflict-exec</arg>
|
|
<arg>cwd=${WORKSPACE}</arg>
|
|
<doc>Runs a process and waits for it to complete.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:16.583407" elapsed="1.225900"/>
|
|
</kw>
|
|
<kw name="Should Be Equal As Integers" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:17.810079" level="INFO">Argument types are:
|
|
<class 'int'>
|
|
<class 'str'></msg>
|
|
<arg>${result.rc}</arg>
|
|
<arg>0</arg>
|
|
<doc>Fails if objects are unequal after converting them to integers.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.809470" elapsed="0.000656"/>
|
|
</kw>
|
|
<kw name="Should Contain" owner="BuiltIn">
|
|
<arg>${result.stdout}</arg>
|
|
<arg>merge-conflict-exec-ok</arg>
|
|
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.810212" elapsed="0.000428"/>
|
|
</kw>
|
|
<doc>Verify merge conflict during execution marks result as failed</doc>
|
|
<tag>conflict</tag>
|
|
<tag>execution</tag>
|
|
<tag>merge</tag>
|
|
<tag>subplan</tag>
|
|
<status status="PASS" start="2026-04-05T20:45:16.583104" elapsed="1.227626"/>
|
|
</test>
|
|
<kw name="Cleanup Test Environment" owner="common" type="TEARDOWN">
|
|
<kw name="Log" owner="BuiltIn">
|
|
<msg time="2026-04-05T20:45:17.811452" level="INFO">Cleaning up test environment</msg>
|
|
<arg>Cleaning up test environment</arg>
|
|
<doc>Logs the given message with the given level.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.811293" elapsed="0.000193"/>
|
|
</kw>
|
|
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
|
|
<kw name="Remove Directory" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:17.812139" level="INFO" html="true">Removed directory '<a href="file:///tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution">/tmp/.cleveragents_Plan_Executor_Subplan_Spawning_&_Subplan_Spawn_&_Subplan_Execution.Subplan_Execution</a>'.</msg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Removes the directory pointed to by the given ``path``.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.811775" elapsed="0.000407"/>
|
|
</kw>
|
|
<arg>Remove Directory</arg>
|
|
<arg>${SUITE_HOME}</arg>
|
|
<arg>recursive=True</arg>
|
|
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.811566" elapsed="0.000653"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:17.812421" level="INFO">Environment variable 'CLEVERAGENTS_HOME' deleted.</msg>
|
|
<arg>CLEVERAGENTS_HOME</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.812347" elapsed="0.000105"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:17.812576" level="INFO">Environment variable 'CLEVERAGENTS_AUTO_APPLY_MIGRATIONS' deleted.</msg>
|
|
<arg>CLEVERAGENTS_AUTO_APPLY_MIGRATIONS</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.812516" elapsed="0.000090"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:17.812730" level="INFO">Environment variable 'CLEVERAGENTS_TESTING_USE_MOCK_AI' deleted.</msg>
|
|
<arg>CLEVERAGENTS_TESTING_USE_MOCK_AI</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.812670" elapsed="0.000094"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:17.812885" level="INFO">Environment variable 'CLEVERAGENTS_DATABASE_URL' does not exist.</msg>
|
|
<arg>CLEVERAGENTS_DATABASE_URL</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.812827" elapsed="0.000086"/>
|
|
</kw>
|
|
<kw name="Remove Environment Variable" owner="OperatingSystem">
|
|
<msg time="2026-04-05T20:45:17.813038" level="INFO">Environment variable 'CLEVERAGENTS_TEST_DATABASE_URL' does not exist.</msg>
|
|
<arg>CLEVERAGENTS_TEST_DATABASE_URL</arg>
|
|
<doc>Deletes the specified environment variable.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.812981" elapsed="0.000084"/>
|
|
</kw>
|
|
<doc>Clean up after tests.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:17.811139" elapsed="0.001966"/>
|
|
</kw>
|
|
<doc>Smoke tests for subplan execution scheduler, merge strategies,
|
|
and integrated execution+merge workflows.</doc>
|
|
<status status="PASS" start="2026-04-05T20:45:00.827999" elapsed="16.985128"/>
|
|
</suite>
|
|
<status status="PASS" start="2026-04-05T20:44:42.873137" elapsed="34.940524"/>
|
|
</suite>
|
|
<statistics>
|
|
<total>
|
|
<stat pass="27" fail="0" skip="0">All Tests</stat>
|
|
</total>
|
|
<tag>
|
|
<stat pass="2" fail="0" skip="0">conflict</stat>
|
|
<stat pass="1" fail="0" skip="0">dependency</stat>
|
|
<stat pass="1" fail="0" skip="0">entries</stat>
|
|
<stat pass="6" fail="0" skip="0">execute</stat>
|
|
<stat pass="9" fail="0" skip="0">execution</stat>
|
|
<stat pass="1" fail="0" skip="0">failfast</stat>
|
|
<stat pass="1" fail="0" skip="0">failure</stat>
|
|
<stat pass="1" fail="0" skip="0">git</stat>
|
|
<stat pass="7" fail="0" skip="0">integration</stat>
|
|
<stat pass="1" fail="0" skip="0">lastwins</stat>
|
|
<stat pass="6" fail="0" skip="0">merge</stat>
|
|
<stat pass="1" fail="0" skip="0">metadata</stat>
|
|
<stat pass="1" fail="0" skip="0">multiple</stat>
|
|
<stat pass="2" fail="0" skip="0">noop</stat>
|
|
<stat pass="3" fail="0" skip="0">parallel</stat>
|
|
<stat pass="6" fail="0" skip="0">plan</stat>
|
|
<stat pass="1" fail="0" skip="0">properties</stat>
|
|
<stat pass="2" fail="0" skip="0">retry</stat>
|
|
<stat pass="3" fail="0" skip="0">sequential</stat>
|
|
<stat pass="9" fail="0" skip="0">spawn</stat>
|
|
<stat pass="27" fail="0" skip="0">subplan</stat>
|
|
<stat pass="1" fail="0" skip="0">summary</stat>
|
|
<stat pass="4" fail="0" skip="0">validation</stat>
|
|
</tag>
|
|
<suite>
|
|
<stat name="Plan Executor Subplan Spawning & Subplan Spawn & Subplan Execution" id="s1" pass="27" fail="0" skip="0">Plan Executor Subplan Spawning & Subplan Spawn & Subplan Execution</stat>
|
|
<stat name="Plan Executor Subplan Spawning" id="s1-s1" pass="6" fail="0" skip="0">Plan Executor Subplan Spawning & Subplan Spawn & Subplan Execution.Plan Executor Subplan Spawning</stat>
|
|
<stat name="Subplan Spawn" id="s1-s2" pass="7" fail="0" skip="0">Plan Executor Subplan Spawning & Subplan Spawn & Subplan Execution.Subplan Spawn</stat>
|
|
<stat name="Subplan Execution" id="s1-s3" pass="14" fail="0" skip="0">Plan Executor Subplan Spawning & Subplan Spawn & Subplan Execution.Subplan Execution</stat>
|
|
</suite>
|
|
</statistics>
|
|
<errors>
|
|
</errors>
|
|
</robot>
|