CNA-VGAP-039: The process-spawning networking tests are compiled out on Windows, Emscripten, Android and iOS, and multi-machine behaviour has no test evidence
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
TwoProcessLoopbackTest.cpp and GamerServicesDispatcherHangRegressionTest.cpp are filtered out for WIN32, EMSCRIPTEN, ANDROID and iOS; several-machine behaviour, Windows shared-port binding and browser sessions have no test evidence, and host migration is tested only on POSIX hosts.
- Identifier
CNA-VGAP-039- Category
- Verification gap
- Subsystem
- Testing & evidence
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- NetworkSession over ENet (SystemLink) on every target
Expected behaviour
The transport's real behaviour (two processes, a handshake, discovery, migration) should be exercised on every target CNA ships networking for.
Actual behaviour at TARGET
UnitTests.cmake removes TwoProcessLoopbackTest.cpp and GamerServicesDispatcherHangRegressionTest.cpp when WIN32 OR EMSCRIPTEN OR ANDROID OR CNA_APPLE_IOS. TwoProcessLoopbackTest.cpp holds three loopback cases: one host and one client exchanging app data, a rollback when discovery registration fails, and a three-process host migration in which one survivor is promoted and the other reconnects; in-process ENetBackendTest cases also cover migration. So migration is tested, but only on POSIX hosts. No test covers several machines; ENetDiscoveryService.cpp records that Windows SO_REUSEADDR sharing of the discovery port was never verified on Windows; discovery is permanently disabled on Emscripten; and the real-process cases do not run at all on Windows, Android, iOS or the web.
Source locations
cmake/UnitTests.cmake— POSIX-only exclusion of the process-spawning testsmodules/net/tests/CNA/Internal/Net/TwoProcessLoopbackTest.cpp— one host, one client, loopback
Evidence
Checked by reading at 009d40f5; not executed.
Independent re-verification: Checked by reading at 009d40f5; not executed. The regression test should be a portable process-spawning helper (CreateProcess on Windows) so the existing three-process migration case can run there, plus a run across two machines.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
In-process session tests on every target; the two-process loopback on POSIX hosts.
Regression test
A portable process-spawning helper (CreateProcess on Windows) and a multi-client migration test.
Blast radius
Evidence only.
Workaround
No workaround is known.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Internals
- Network session internals: tests
- Known issues
- Verification gap index