Files
cleveragents-core/robot/m3_decision_validation_smoke.robot
T
brent.edwards 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
test(plan): TDD failing tests for checkpoint real rollback (bug #822)
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
2026-03-16 01:45:50 +00:00

74 lines
3.5 KiB
Plaintext

*** Settings ***
Documentation M3 decision tree, validation gating, and invariant enforcement E2E smoke tests via CLI
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment With Database Isolation
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_m3_decision_validation_smoke.py
*** Test Cases ***
M3 Invariant Add Global
[Documentation] Add a global invariant constraint via CLI
${result}= Run Process ${PYTHON} ${HELPER} invariant-add-global cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-invariant-add-global-ok
M3 Invariant Add Project Scoped
[Documentation] Add a project-scoped invariant constraint via CLI
${result}= Run Process ${PYTHON} ${HELPER} invariant-add-project cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-invariant-add-project-ok
M3 Invariant List
[Documentation] List invariants via CLI
${result}= Run Process ${PYTHON} ${HELPER} invariant-list cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-invariant-list-ok
M3 Invariant Remove
[Documentation] Remove an invariant by ID via CLI
${result}= Run Process ${PYTHON} ${HELPER} invariant-remove cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-invariant-remove-ok
M3 Validation Add From Config
[Documentation] Register a validation from YAML config via CLI
${result}= Run Process ${PYTHON} ${HELPER} validation-add cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-validation-add-ok
M3 Validation Attach
[Documentation] Attach a validation to a resource via CLI
${result}= Run Process ${PYTHON} ${HELPER} validation-attach cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-validation-attach-ok
M3 Validation Detach
[Documentation] Detach a validation from a resource via CLI
${result}= Run Process ${PYTHON} ${HELPER} validation-detach cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-validation-detach-ok
M3 Plan Correct Dry Run
[Documentation] Run plan correct in dry-run mode to preview correction impact
${result}= Run Process ${PYTHON} ${HELPER} plan-correct-dry-run cwd=${WORKSPACE} timeout=120s on_timeout=kill
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} m3-plan-correct-dry-run-ok