diff --git a/implementations/python/packages/raes_conformance/conformance/target_probes.py b/implementations/python/packages/raes_conformance/conformance/target_probes.py index 690b6c83..068025b9 100644 --- a/implementations/python/packages/raes_conformance/conformance/target_probes.py +++ b/implementations/python/packages/raes_conformance/conformance/target_probes.py @@ -39,7 +39,13 @@ from raes_conformance.conformance.validators import _validate_payload # Default reference scenario the target-conformance adapter probe drives when the -# caller supplies none. Backend-neutral: a single generic linux vm node. +# caller supplies none. Backend-neutral: a single generic compute node with no +# authored OS identity — an authored ``os`` becomes an exact SEM-218 +# realization requirement demanding corroboration no hermetic in-process +# backend declares, which is what regressed this probe when authored OS +# identity started carrying through realization. Leaving it unset keeps the +# probe admissible on every declared envelope, mirroring +# ``examples/scenarios/cross-backend-minimal.sdl.yaml``. # # Issue #663 makes this a *default*, not a universal assumption. A fixed-topology # emulation or bounded simulation backend that cannot realize this generic @@ -55,7 +61,6 @@ nodes: vm: type: compute - os: linux resources: {ram: 1 gib, cpu: 1} conditions: {health: ops} roles: {ops: operator} diff --git a/implementations/python/tests/test_reference_backend_conformance.py b/implementations/python/tests/test_reference_backend_conformance.py index 510e9d7a..c7eab272 100644 --- a/implementations/python/tests/test_reference_backend_conformance.py +++ b/implementations/python/tests/test_reference_backend_conformance.py @@ -20,6 +20,29 @@ def test_reference_target_requires_opacity_probe_for_positive_declaration(): assert not report.unsupported_capability_gaps +def test_adapter_probes_pass_for_every_hermetic_backend(): + """The provisioning/snapshot adapter probes must stay envelope-neutral. + + An authored ``os`` in the default probe scenario becomes an exact SEM-218 + realization requirement no hermetic in-process backend can corroborate, + which silently failed these probes for every honest backend when authored + OS identity started carrying through realization. Pinning them keeps the + default probe admissible on every declared envelope (issue #663's runner + parameter stays the escape hatch for bounded backends). + """ + + from raes_backend_stubs.stubs import create_stub_target + + for target in (create_reference_backend_target(), create_stub_target()): + report = run_target_conformance(target) + cases = {case.name: case for case in report.cases} + for name in ("target-provisioning", "target-snapshot"): + assert cases[name].passed, ( + f"{name} must pass for an honest hermetic backend; " + f"diagnostics: {[diag.message for diag in cases[name].diagnostics]}" + ) + + def test_reference_target_drives_full_participant_probe_case_set(): report = run_target_conformance(create_reference_backend_target())