11 Commits
Author SHA1 Message Date
PrivacyOnion 25e07ea713 test(libSceContentSearch): cover invalid metadata and query bounds in GuestContentSearch
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:24:09 +01:00
Dean 349055c1cd Merge pull request #11009 from EagleBearerYS/fix/count-throwing-done-content
fix: report seven always-throwing content and audio exports as not implemented
2026-10-27 05:36:36 +13:00
Yunus Shaikh d55cd28762 test: stop requiring the seven unsupported calls to throw
The audio-path calculation, the export progress and thumbnail calls and
the four metadata calls are valid calls the libraries don't answer yet.
Checks requiring them to throw would fail as soon as one is
implemented, so the exact NotImplemented checks and their helpers go,
along with the output checks that depended on those calls. The
NotImplemented_nid_no_patch conversions, the debt entries and the
argument, session and handle checks stay.

Asked for in oneandonlydean's review.
2026-10-25 23:25:10 -07:00
Yunus Shaikh 70cb02625d fix(libSceContentSearch): report metadata access as not implemented
Past their initialization and argument errors, sceContentSearchOpenMetadata, sceContentSearchOpenMetadataByContentId, sceContentSearchGetMetadataFieldInfo and sceContentSearchGetMetadataValue threw a bare logic_error for every valid call, so progress.py counted them as done. The host content library is empty and the console's errors for missing content and unopened metadata ids are unknown, so the four now go through NotImplemented_nid_no_patch. ThrowUnknownMetadataId had no other caller and goes.
2026-10-25 12:53:43 +00:00
Himansh Raj a01a4354db Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-25 12:31:32 +05:30
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00
Himansh Raj d6433a6006 build: compile the shared libc headers, thread priority and three tests on macOS
A macOS build of main failed 49 objects. Most included
libc/include/FileStream.hpp, whose global-namespace ::feof_unlocked and
::ferror_unlocked do not exist there (they are macros in the macOS SDK).
On macOS:

- FileStream.hpp calls feof_unlocked and ferror_unlocked unqualified.
- ExportMacros.hpp adds the leading underscore Mach-O gives C symbols to
  both names in APS5_EXPORT, so the .set alias resolves.
- ThreadPriority.cpp has no rtkit or RLIMIT_RTTIME; "high" asks for the
  user-interactive QoS class and "rt" for a Mach time-constraint policy
  (period 1 ms, computation 0.5 ms), documented in ENVIRONMENT.md.
- Formatting.cpp maps the SysV va_list builtins to va_list, and
  GuestContentSearch.cpp and GuestNpWebApi2.cpp include
  <initializer_list>.

With these, 16 objects still fail on macOS; each is in a file changed by
an open macOS PR. Linux and Windows compile the same code as before.
2026-10-24 00:50:46 +05:30
Dean 70bf2f639c Merge pull request #9281 from al3w0f205/test/contentsearch-binder-and-application-search-coverage
test(libSceContentSearch): cover content binder return values and unimplemented application search stubs
2026-10-23 13:03:41 +13:00
boykopovar 813b6f4362 fix(contentsearch): recover initialization and query validation errors 2026-10-21 21:49:59 +03:00
al3w0f205 145acfb254 test(libSceContentSearch): cover content binder return values and unimplemented application search stubs 2026-10-21 12:25:06 -05:00
David 1c7a8305b5 feat(libSceContentSearch): implement the search calls over an empty library
Cult of the Lamb (PPSA06465) imports libSceContentSearch, including
sceContentSearchGetContentLastUpdateId, OpenMetadataByContentId,
GetTotalContentSize and GetNumOfContent (import audit in #2686), which
were declared without parameters and threw.

Give the nine pending calls the signatures of AlexAltea/orbital
db_types.json (cc408367, lines 555-569) and SharpProspero
Interop/Content/ContentSearch.cs (5dfdb4b0), and implement the content
library the host has, which is empty:

- GetNumOfContent, GetTotalContentSize and SearchContent report 0 rows
  and 0 bytes, GetContentLastUpdateId and the search calls report update
  id 0. A search limit above 92 returns 0x809D100A and every call before
  Init returns 0x809D1001, both from SharpProspero.
- Filters and sort conditions use SharpProspero's layouts (added to
  SceTypes.hpp with size checks) and are checked against its enums;
  unknown values, null outputs and null arrays with a length throw.
- OpenMetadata and OpenMetadataByContentId throw, as no source gives the
  error for content that is not in the library, so no metadata id is
  handed out and CloseMetadata, GetMetadataFieldInfo and
  GetMetadataValue throw too.

The update id value, the argument errors and the check order are
recorded in TechnicalDebt. The four ContentSearch calls leave the
unimplemented-imports test, and guest_content_search covers the library.
2026-10-13 00:34:12 +05:30