Firmware 13.42, run natively, checks six requests' arguments before the
context; a request that passes them still throws, because the run could
not show how the module completes it. LeaveRoom finds no session, the
local getters report the context as not started, and the signaling calls
find no peer. The signaling port is stored and reported.
The test called sceNpMatching2CreateContextA through a function type
built on a local copy of the parameter struct, which clang's function
sanitizer reports as undefined behaviour. It now uses the public
NpMatching2CreateContextParameterA and the declared function type.
Firmware 13.42, run natively, hands context 1 to sceNpMatching2CreateContext
and 258 (0x0102) to the sceNpMatching2CreateContextA after it, so A contexts
take the next of the same ten slots and carry 0x100 in their id.
sceNpMatching2SignalingGetConnectionStatus reports every member inactive
for a known context, since no room is joined offline, and leaves the peer
address and port untouched; a null status pointer throws.
sceNpMatching2AbortContextStart returns NOT_INITIALIZED before
initialization and 0 afterwards. Checks follow shadPS4, with RPCS3's
differences recorded in the technical debt entry.
The context calls, the callback registrations and
SetDefaultRequestOptParam threw. They now follow shadPS4's checks and
context ids, ContextStart returns SCE_NET_ERROR_RESOLVER_ETIMEDOUT, the
answer shadPS4 records for a console without internet access, and
Terminate releases the contexts.