test: formalize real PLC acceptance testing - #892
Conversation
|
@russwing Could you run the cross-model real-PLC acceptance pass for the S7CommPlus work once its code review settles? Your S7-1200 and S7-1500 access makes that the useful compatibility pair. Suggested order: the response/authentication roots (#881, #882, #883, #887), then stacked integrity/renewal (#884, #888), followed by typed tags/subscriptions (#886, #891). Please use the result template in this PR and record the exact CPU, firmware, protection mode, and tested commit. #881 still has an unresolved S7-1511C item-read failure from the latest reporter retest, so a failure there would also be valuable evidence. |
|
Ran the harness today on both CPUs of the compatibility pair. One blocking defect in the S7CommPlus adapter, and a preparation gap of ours. Commit The blocker: the S7CommPlus adapter never enables TLS
self.client.connect(self.config.host, self.config.port, self.config.rack, self.config.slot)
Controlled proof — same CPU, same commit, same port, only Suggested fix: a Results as they stand
The other four scenarios fail on both CPUs for a reason that is ours, not yours: neither PLC carries the DB1/DB2 fixture from So this is a partial, and I would rather report it now than sit on the TLS finding. One note on hardware scope#881's outstanding item-read failure is on an S7-1511C. Ours is a 1511F — same S7-1500 family, different model and a safety variant. Whatever we produce is useful compatibility evidence but will neither confirm nor clear that specific report. I will file the formal |
|
Fixture DBs are now in place on both CPUs, so here is the full pass. Two defects, one of them substantial, plus confirmation that the TLS fix works. Harness Results
1. The TLS fix works — confirmedPatching 2.
|
Progresses #840.
Adds a pytest-bdd-based real-PLC acceptance program with 26 versioned scenarios covering connection, canonical reads, multi-read, reconnect behavior, and safely restored scratch writes across legacy S7 and S7CommPlus.
Safety and evidence:
Local verification:
uv run pre-commit run --all-filesuv run pytest -q --tb=short(2079 passed, 109 skipped)uv build --offline --quietuv run sphinx-build -W -b html doc /tmp/python-snap7-doc-840The final acceptance item—filing one legacy-S7 and one S7CommPlus real-hardware result—requires volunteer PLC runs after this infrastructure lands, so this PR intentionally does not close #840.