3eecb79003
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 46s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 56s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 29s
CI / e2e_tests (pull_request) Successful in 2m7s
CI / unit_tests (pull_request) Successful in 3m8s
CI / docker (pull_request) Successful in 9s
CI / integration_tests (pull_request) Successful in 3m57s
CI / coverage (pull_request) Successful in 7m48s
CI / benchmark-regression (pull_request) Successful in 40m48s
TDD expected-fail tests proving bug #822 exists: CheckpointService.rollback_to_checkpoint() returns a successful RollbackResult but does not execute git reset --hard. Files modified after the checkpoint remain unchanged after rollback. Also fixes Robot Framework timeout robustness across the entire test suite: all Run Process calls now use on_timeout=kill (prevents SIGTERM-induced -15 exit codes under CI load) and timeouts increased to 120s (prevents premature kills during heavy parallel execution). ISSUES CLOSED: #839
71 lines
4.1 KiB
Plaintext
71 lines
4.1 KiB
Plaintext
*** Settings ***
|
|
Documentation End-to-end persistence lifecycle tests covering full phase
|
|
... transitions, process restart simulation, plan status reopen,
|
|
... concurrent CLI access safeguards, argument/invariant ordering,
|
|
... and project link persistence.
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER_SCRIPT} robot/helper_persistence_lifecycle.py
|
|
|
|
*** Test Cases ***
|
|
Plan Full Lifecycle Phase Transitions
|
|
[Documentation] Create action and plan, walk through every phase
|
|
... (action -> strategize -> execute -> apply) and verify
|
|
... terminal state is reached and persisted.
|
|
[Tags] database plan lifecycle persistence
|
|
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} full-lifecycle cwd=${WORKSPACE} timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} full-lifecycle-ok
|
|
|
|
Process Restart Simulation
|
|
[Documentation] Write plan to file-backed SQLite, close the connection
|
|
... entirely, reopen from disk and verify all plan fields
|
|
... (phase, state, description, project links) survive.
|
|
[Tags] database plan restart persistence
|
|
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} restart-simulation cwd=${WORKSPACE} timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} restart-simulation-ok
|
|
|
|
Reopen Plan Status After Restart
|
|
[Documentation] Close DB, reopen, and verify plan phase/state,
|
|
... automation level, and tags are unchanged.
|
|
[Tags] database plan reopen persistence
|
|
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} reopen-plan-status cwd=${WORKSPACE} timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} reopen-plan-status-ok
|
|
|
|
Concurrent CLI Access Safeguards
|
|
[Documentation] Open two independent sessions against the same DB file
|
|
... and verify committed plans are visible across sessions.
|
|
[Tags] database plan concurrent persistence
|
|
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} concurrent-access cwd=${WORKSPACE} timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} concurrent-access-ok
|
|
|
|
Stored Arguments Ordering Persistence
|
|
[Documentation] Create an action with 4 ordered arguments, persist,
|
|
... retrieve and verify positional ordering is preserved.
|
|
[Tags] database action arguments ordering
|
|
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} arguments-ordering cwd=${WORKSPACE} timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} arguments-ordering-ok
|
|
|
|
Stored Invariants Ordering Persistence
|
|
[Documentation] Create an action with 3 ordered invariants, persist,
|
|
... retrieve and verify list ordering is preserved.
|
|
[Tags] database action invariants ordering
|
|
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} invariants-ordering cwd=${WORKSPACE} timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} invariants-ordering-ok
|
|
|
|
Project Links Persistence Through Restart
|
|
[Documentation] Create plan with 2 project links, close DB, reopen,
|
|
... verify both links survive the restart cycle.
|
|
[Tags] database plan project-links persistence
|
|
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} project-links cwd=${WORKSPACE} timeout=120s on_timeout=kill
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} project-links-ok
|