Tier 3 of the SAP testing ladder. Tiers 1–2 are live in CI since #30/#31: the in-memory fake engine proves the pipeline on every platform, and the scripting simulator proves the production COM engine (GetActiveObject, IDispatch late binding, VARIANT marshaling, FindById error paths) on stock windows-latest runners. What remains unverified is SAP's own behavior: real control types and tree shapes, sapgui/user_scripting handshakes, timing, multi-window dialogs, connection opening via SAP Logon.
The test itself already exists — crates/flowproof-cli/tests/sap_e2e.rs (windows-gated, FLOWPROOF_E2E_SAP=1) records and replays a navigation-only flow (Go to /nSESSION_MANAGER, surface assert; touches no business data). This issue is about giving it somewhere to run.
Infrastructure needed (org side)
Repo work (once infra exists)
Security notes
- Self-hosted runners execute workflow code: restrict the runner to this repo, do not enable it for fork PRs, and keep the VM network-limited to the SAP dev system.
- The E2E must stay read-only/navigation-only unless pointed at a disposable client.
Until this runs, the honest status line is: the COM wire protocol is proven end to end, SAP's side of the conversation is not.
Tier 3 of the SAP testing ladder. Tiers 1–2 are live in CI since #30/#31: the in-memory fake engine proves the pipeline on every platform, and the scripting simulator proves the production COM engine (
GetActiveObject, IDispatch late binding, VARIANT marshaling,FindByIderror paths) on stockwindows-latestrunners. What remains unverified is SAP's own behavior: real control types and tree shapes,sapgui/user_scriptinghandshakes, timing, multi-window dialogs, connection opening via SAP Logon.The test itself already exists —
crates/flowproof-cli/tests/sap_e2e.rs(windows-gated,FLOWPROOF_E2E_SAP=1) records and replays a navigation-only flow (Go to /nSESSION_MANAGER, surface assert; touches no business data). This issue is about giving it somewhere to run.Infrastructure needed (org side)
datamaker-sap-cliteam may already have one), the free ABAP Platform Trial in Docker, or an SAP CAL appliance.sapgui/user_scripting = TRUEin RZ11, client-side scripting allowed), and an auto-logged-in session or a logon step in the workflow.saplabel.Repo work (once infra exists)
sap-e2e.ymlworkflow:workflow_dispatch+ nightly schedule,runs-on: [self-hosted, sap], runscargo test -p flowproof-cli --test sap_e2ewithFLOWPROOF_E2E_SAP=1; connection/credentials via repo secrets and${VAR}indirection (values must never enter traces or logs — the engine's secret handling already guarantees the former).sap_e2ewith a data-free transaction walk once the basic attach path is proven.Security notes
Until this runs, the honest status line is: the COM wire protocol is proven end to end, SAP's side of the conversation is not.