Repository navigation
Conversation
jotitadev
left a comment
There was a problem hiding this comment.
Ran this on Linux, since the description only lists Windows.
- Machine: Ubuntu 26.04, x86_64 (i7-8700), GCC 15.2.0, CMake 4.2.3 + Ninja, Release,
BUILD_TESTING=ON, full tree. - Head:
ce13b65f9, on top ofmain5d9dcc42d(fast-forward).
Results:
- Full build: clean, no warnings.
ctest -R "^guest_player_selection_dialog$": passes, 20/20 with--repeat until-fail:20.- Non-GPU suite (
ctest -E "^agc|gpu|vulkan|video_out" -j10): same failures asmain5d9dcc42d(file_writer_binaryandfile_writer_text, which fail on this machine's coreutils and are unrelated).guest_host_standard_errortimed out once under-j10both onmainand on this head, and passes on its own (5/5, about 2 s), so it is load-related and not caused by this PR. tools/check_conventions.py --base origin/main: passes.- Check that the assertions run: with
result[0]expected to be 0 instead ofUSER_CANCELEDthe test aborts; reverted, it passes.
The lifecycle matches libSceLoginDialog line for line (same status values, error codes and Close that leaves the status unchanged), so the two behave the same.
Written with AI assistance (Claude Code). I ran the builds and tests above on my machine.
|
Thanks for this. #6058 has now merged with the same base dialog code, so this branch will conflict on The part #6058 doesn't have is |
ce13b65 to
8935faf
Compare
|
Rebased onto current main and trimmed this PR down to Close, GetStatus, and ParamInitialize on top of merged #6058, with corresponding test assertions added in core/libs/tests/GuestPlayerSelectionDialog.cpp. Verified with guest_player_selection_dialog passing 100% and ools/check_conventions.py passing cleanly. |
…nitialize stub and tests
8935faf to
b62ecc8
Compare
|
Rebased onto current main following the merge of Close and GetStatus. This PR now provides the remaining |
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for trimming this down to the remaining export. One problem:
core/libs/prx/libScePlayerSelectionDialog/Export.cpp:66:scePlayerSelectionDialogParamInitializereturns success without touchingparam. The common-dialog*ParamInitializefunctions zero the param struct and set its size/defaults (KytyPS5LoginDialogParamInitializedoes amemset+size, and returns void). Titles then pass that struct toOpen, so leaving it uninitialised is a plausible-but-wrong result wheremainthrew. Please either initialise it per a cited source forScePlayerSelectionDialogParam(size and default fields), or, if the layout is unknown, throwNotImplemented_nid_no_patchfor the non-null case.core/libs/tests/GuestPlayerSelectionDialog.cpp:36-37: the test should pin the written bytes (pre-fill the param with a non-zero pattern and check whatParamInitializeleaves), otherwise it passes with the current no-op.docs/dev/debt/libScePlayerSelectionDialog.md:4: the entry only lists the new import; if any part of the struct is left unfilled, say which under Silent stubs.
What
Implements the common dialog lifecycle exports for libScePlayerSelectionDialog:
Adds guest unit tests in core/libs/tests/GuestPlayerSelectionDialog.cpp verifying state transitions and parameter validation, and documents debt in docs/dev/debt/libScePlayerSelectionDialog.md.
Tested
Windows 11 (MinGW64 DWARF), ctest guest_player_selection_dialog passed 100%.
Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)