Commit Graph
3 Commits
Author SHA1 Message Date
Yunus Shaikh 60baf80572 test(prx): look up each pending export by name in the built library
Release builds fold a declared function's address compared with nullptr
to false, so the tables' loops compiled away together with the tables'
references to the exports, and the checks passed without the library
exporting anything. Each test now gets its library's built file from its
add_test line, opens it, looks up every name in its table, and requires
one name the library doesn't export not to resolve. The table entries
are read through a volatile copy, so the test binaries keep importing
them.
2026-10-28 10:25:40 -07:00
Yunus Shaikh 856a0b78d5 test(prx): check that the newly built exports are exported, not that they throw
A check that a placeholder throws "not implemented" fails as soon as the
export is implemented. The export tables now only require each entry's
address, so they still fail to build when an export goes missing, and an
implementation doesn't break them. The libSceNgs2 calls with real
signatures go into the same kind of table.

Asked for in oneandonlydean's review.
2026-10-25 23:02:58 -07:00
Yunus Shaikh bd97351d00 test(prx): check every stub the newly built Export.cpp files export
The build fix checks one export per library. Call the rest through
their headers and require std::runtime_error with "<name> not
implemented": 34 more in libSceAgcDriver, 14 more in libSceNgs2.native
plus libSceNgs2's six PendingExports.cpp stubs, 22 more in
libSceNpTrophy2 and 10 more in libSceNpUniversalDataSystem. The 14
libSceAudiodec.native and 2 libSceAvPlayer.native exports had no test,
so each gets a guest executable of its own.
2026-10-25 13:52:48 +00:00