summaryrefslogtreecommitdiff
path: root/Source/UnitTests
AgeCommit message (Collapse)Author
2026-08-10IOS/FS: Fix loading savestate when files are openJosJuice
We already had code to close open host files when reading or writing a savestate, but due to d35fe1b we also need to close open guest files when reading a savestate, otherwise DoStateRead fails to delete them. I was considering an alternative solution where instead of copying and clearing m_handles, we just set `handle.opened = false;` for each handle before reading a savestate (but not before writing a savestate). However, this wouldn't solve the problem of DoStateWriteOrMeasure's calls to OpenFile failing due to all handles being open. I'm not aware of any games that have that many handles open, though.
2026-04-27Merge pull request #13931 from SuperSamus/pikmin-squared-60fpsJMC47
GameINI: Add 60 FPS code for Pikmin Squared
2026-04-25Merge pull request #14308 from jordan-woyak/character-encodingJordan Woyak
StringUtil: Make UTF16ToUTF8 and UTF8ToUTF16 use custom encoding/decoding implementation.
2026-04-25GameINI: Add 60 FPS code for Pikmin SquaredMartino Fontana
2026-04-18StringUtil: Make UTF16ToUTF8 and UTF8ToUTF16 use custom encoding/decoding ↵Jordan Woyak
implementation to eliminate usage of deprecated std::wstring_convert.
2026-04-17Improve usage of std::move and const references parametersMartino Fontana
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`. Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move. Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
2026-04-11Merge pull request #14500 from Sintendo/span2Jordan Woyak
Replace `const std::vector&` arguments with `std::span`
2026-04-04PageTableHostMappingTest: Fix copypaste error in misaligned+hole testJosJuice
Because of this mistake, HoleInMaskMisalignedPageTable was testing the same thing as MisalignedPageTable, which wasn't the intent.
2026-04-04PageTableHostMappingTest: Fix alignment for misaligned+hole testJosJuice
Mistakenly, MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE was aligned and MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE_ALIGNED was misaligned. It should be the other way around. These variables are unused due to a separate mistake which is corrected in the next commit.
2026-03-23Use more std::span argumentsSintendo
2026-02-22AchievementManager: APPROVED_LIST_HASH quality of life improvementsMartino Fontana
APPROVED_LIST_HASH is moved to a separate file, making tests compilation faster after changing it. The error message prints the hash in a way that it can be directly copy-pasted (though it still needs clang-format).
2026-02-15Network: Improve IPv4PortRange::ToString to support CIDR notation and only ↵Jordan Woyak
last octet difference.
2026-02-15Common/Network: Add structs: IPv4Port, IPv4PortRange and functions: ↵Jordan Woyak
IPAddressToString, ParseIPv4PortRange.
2026-02-15StringUtil: Add SplitStringIntoArray function template.Jordan Woyak
2026-02-04Merge pull request #13768 from JosJuice/page-table-fastmem-2JMC47
Core: Create fastmem mappings for page address translation
2026-02-04UnitTests: Add PageTableHostMappingTestJosJuice
2026-02-03Merge pull request #13594 from jordan-woyak/state-cleanupsJordan Woyak
State: Simplify interthread communication and general cleanups.
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2026-01-19Common: Add TransferableSharedMutex class and unit tests.Jordan Woyak
2026-01-18Jit64: Add fres unit testJosJuice
2026-01-17Merge pull request #14267 from jordan-woyak/std-expectediwubcode
Common: Replace Result with std::expected.
2026-01-17Common: Replace Result with C++23's std::expected.Jordan Woyak
2026-01-17Fix various typos and spelling mistakesSintendo
2025-11-27Disable PatchAllowlistTest if USE_RETRO_ACHIEVEMENTS is OFFJoshua Vandaële
This fixes a build error when `-DENABLE_TESTS=ON` and `-DUSE_RETRO_ACHIEVEMENTS=OFF` are both set together, since AchievementManager is also behind an ifdef.
2025-11-16Merge pull request #13689 from JosJuice/lock-core-any-threadJosJuice
Core: Let any thread call previously host-thread-only functions
2025-11-10Core: Remove IsHostThreadJosJuice
The core no longer cares which thread is the host thread. Cleaning up Android's HostThreadLock is left for another PR, in part because the HostThreadLock in NativeConfig.cpp still serves a purpose, and in part to make any issues easier to bisect.
2025-11-09Common: Add a DirectIOFile class that allows for copies which are entirely ↵Jordan Woyak
thread safe.
2025-11-08Merge pull request #14020 from jordan-woyak/string-util-cleanupsJosJuice
StringUtil: Cleanups and add some character encoding conversion unit tests.
2025-11-02Common: Add AtomicMutex and SpinMutex classes as faster alternatives to ↵Jordan Woyak
std::mutex.
2025-11-02UnitTests: Add some StringUtil character encoding conversion tests.Jordan Woyak
2025-10-08Jit64: Dynamic length of regular jump instruction (for known addresses)Martino Fontana
Conditional jumps already do that, so let's be consistent.
2025-09-26Merge pull request #13940 from iwubcode/glslang_updateJMC47
Externals / VideoCommon: update glslang to latest, turn into submodule
2025-09-23Externals / VideoCommon: update glslang to latest, turn into submoduleiwubcode
2025-09-17Merge pull request #13874 from sepalani/bitcast-ptrJMC47
Common/BitUtils: Add operator[] to BitCastPtrType
2025-08-27MathUtil: Simplify SaturatingCast implementation with ↵Jordan Woyak
std::cmp_less/cmp_greater and fix a floating point edge case. Thanks to Dentomologist for catching the edge case.
2025-08-18Common/BitUtils: Add operator[] to BitCastPtrTypeSepalani
2025-08-10Merge pull request #13846 from JoshuaVandaele/better-xcbTilka
Qt: Better wayland detection to enforce xcb
2025-08-04Qt: Better wayland detection to enforce xcbJoshua Vandaële
In certain cases, the platform can be "wayland-egl", "wayland-xcomposite", and other values for which I haven't found a full list yet. Instead of matching only "wayland", we now look for "wayland" anywhere in the `QT_QPA_PLATFORM` string in a case-insensitive manner. Acknowledgements: `CaseInsensitiveContains`' implementation was heavily inspired by GNU's non-standard glibc `strcasestr` function, which can be found here licensed under GPLv2 or later: https://ftp.gnu.org/gnu/libc/
2025-08-03Host: Remove unnecessary functionsDentomologist
Remove Host_RefreshDSPDebuggerWindow (which hasn't done anything since DolphinWX was removed in 44b22c90) and DSP::Host::UpdateDebugger (which only called Host_RefreshDSPDebuggerWindow).
2025-08-03Host: Remove unnecessary functionDentomologist
Remove Host_UpdateMainFrame(). The only non-empty call happened in DolphinNoGUI which called s_update_main_frame_event.Set(), but DolphinNoGUI never waits on that event.
2025-07-16Merge pull request #13783 from jordan-woyak/schedule-event-from-thread-fixJMC47
CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread.
2025-07-12Fix various warningsJoshua Vandaële
2025-06-29CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from ↵Jordan Woyak
non-CPU thread.
2025-06-14Source: Remove redundant lambda parameter listsDr. Dystopia
2025-06-08Merge pull request #13676 from ↵JMC47
LillyJadeKatrin/retroachievements-allowlist-test-improvements RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
2025-06-07Merge pull request #13023 from tygyh/Replace-ties-with-structured-bindingsJordan Woyak
UnitTests: Replace ties with structured bindings
2025-05-21RetroAchievements: Updated PatchAllowlistTest to generate new allowlistLillyJadeKatrin
Refactors the PatchAllowlistTest to streamline the experience for developers. Instead of a textual description of what needs to change in ApprovedInis.json for RetroAchievements compatibility, the test will now generate a replacement file and instruct the coder where to copy it in their local branch, and what to update APPROVED_LIST_HASH to. The result should be easier and more instructive for developers to make changes, while still maintaining that allowed codes cannot be added or modified without recompiling Dolphin. As ApprovedInis.json no longer needs to be user-readable for this process, it no longer contains titles or pretty formatting and as such is updated in this commit, hash included.
2025-05-18Merge pull request #13672 from ↵Jordan Woyak
tygyh/UnitTests/Remove-redundant-template-type-specifiers UnitTests: Remove redundant template type specifers
2025-05-18Merge pull request #13668 from tygyh/UnitTests/Core/Make-parameters-constantJordan Woyak
UnitTests/Core: Make parameters constant
2025-05-16UnitTests: Remove redundant template type specifersDr. Dystopia