From ebfd1d755fa4c0d60fe8cf54d81cbf995682ff94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 30 Jul 2026 01:24:39 +0200 Subject: [PATCH] Bump the tests, fixing the tls test and also the timezone conversion --- docs/pspautotests.md | 17 +++++++++++++++++ pspautotests | 2 +- test.py | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/docs/pspautotests.md b/docs/pspautotests.md index 68a7fc5f27..1156d54fde 100644 --- a/docs/pspautotests.md +++ b/docs/pspautotests.md @@ -115,6 +115,23 @@ The diff is line-by-line, so an `O` line followed by an `E` line at the same con - When searching for the underlying issue, trace through the HLE implementation with the test's syscall sequence. Check whether the kernel writes into PSP-visible memory — if so, test code can corrupt those values, and the PSP kernel may have specific handling for that. +- **Pointer addresses differ between PSP and PPSSPP.** A test that prints raw kernel pointers + (heap addresses, TLS block addresses, etc.) will always have mismatched expected output + because PSPLink shifts memory layout. Fix by changing the test to print offsets from a + base address instead of absolute addresses. After changing the test, run it on hardware + to generate a new `.expected`. +- **The diff notation:** + - `O` line = present in PPSSPP's output but not in expected (PPSSPP-only). + - `E` line = present in expected but not in PPSSPP output (expected-only). + - `+` line = context line (shown around diffs for context). + - `=` line (with `--print-equal-lines`) = matching line. + - `[r]` / `[x]` prefix = rescheduling occurred / did not occur since last line. +- **When a function is a stub** (`UNIMPL` in log), the expected output is a good specification + for what to implement. Look at multiple test cases in the expected file to understand the + full range of valid and invalid inputs, return codes, and side effects. +- **Time-dependent tests** (RTC, timezone conversions) depend on the host machine's clock + and timezone. The PSP's `sceRtcParseDateTime` was a stub — the expected file showed + exactly which RFC 3339 / RFC 2822 formats are accepted and which are rejected (return -1). ## Troubleshooting diff --git a/pspautotests b/pspautotests index de9e671279..6ba9cf9e1e 160000 --- a/pspautotests +++ b/pspautotests @@ -1 +1 @@ -Subproject commit de9e6712796bb0763a747f2e0256826083e02bb4 +Subproject commit 6ba9cf9e1eca2fd911dfa728f5509bb321d36b20 diff --git a/test.py b/test.py index ffa43f3ab4..56c0989afa 100755 --- a/test.py +++ b/test.py @@ -331,6 +331,7 @@ tests_good = [ "threads/threads/threads", "threads/tls/create", "threads/tls/delete", + "threads/tls/get", "threads/tls/free", "threads/tls/priority", "threads/tls/refer", @@ -478,7 +479,6 @@ tests_next = [ "threads/scheduling/scheduling", "threads/threads/create", "threads/threads/terminate", - "threads/tls/get", "threads/vpl/create", "umd/io/umd_io", "umd/raw_access/raw_access",