aboutsummaryrefslogtreecommitdiff
path: root/src/tests/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* tests: cover room packet matching and size-checked ZSTD decompressioncirakg26 hours1-0/+1
| | | | Assisted-by: Claude Opus 5.5 (investigation and implementation)
* tests: cover room ProxySocket receives and the LDN join handshakecirakg27 hours1-0/+2
| | | | | | | | | | | Add unit tests for the room LAN fixes in this branch. The socket tests check datagram truncation, TCP remainders and peeks, timeouts, wakeups on close and on a new packet, and stream behavior with the default protocol. The LDN tests check that a join waits for the host's reply, rejects bad or duplicate joins, ignores late replies and uses fresh identities. Assisted-by: Sol (LDN join tests) Assisted-by: Claude Opus 5.5 (room socket tests)
* settings: restore the recommended MKW settings promptsnowstormxd30 hours1-0/+1
| | | | | | Apply accepted settings visibly and save them, then reapply after per-game configuration. Include handheld mode. Assisted by Codex.
* core: skip empty bitmap ranges during cache and scheduler traversalsnowstormxd32 hours1-0/+3
| | | | | | Adapted bitmap scans from sylvieistaken/selevet-eglantine performance build 4. Keep the wide-priority fallback and fix the first live slot after empty bitmap words. Include randomized lifecycle and ordering checks. Assisted by Codex.
* tests: verify deferred descriptors against eager invalidationsnowstormxd32 hours1-0/+1
| | | | | | | Exercise 40,000 mutations and table switches plus repeated deletion across five channels. Make the existing descriptor read work with a memory reader fixture and add an explicit CPU benchmark with opaque invalidation calls. Assisted-by: Codex (implementation, review, commit text and automated validation) (cherry picked from commit 3b62a551da8ec0b4edf19a1c4e14fa2519dd20e2)
* shader_cache: batch memory-write invalidations without skipping rangessnowstormxd32 hours1-0/+1
| | | | | | | Adapt the batching from ymatrix1/Eglantine PR #237, retaining all CPU invalidations. Acquire the lock once and remove pending shaders once per write batch. Compare real cache contents with sequential invalidation across randomized overlapping writes and pending removals. Assisted-by: Codex (implementation, review, commit text and automated validation) (cherry picked from commit b65f818d7789ffadfb58fe4543b18060fd88ce53)
* macro: execute native parameters without a second FIFO copysnowstormxd32 hours1-0/+1
| | | | | | | | Use the owned parameter vector for DMA FIFO appends. Add a native JIT regression covering reallocation and repeated invocations against the copied-input path. Assisted by Codex. (cherry picked from commit 5b6803aaab18e332493903ee49cab026c041d5dc)
* file_sys: add a deterministic NUP packer, Convert to NUP in Qt and eden-cli ↵Jonas43 hours1-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --pack-nup (#271) * file_sys: add a NUP packer for loose dumps Packs a loose dump (exefs/romfs, base/, updates/<version>/ and dlc/<titleid>/<n>/) into a NUP v1 container with the aligned record layout. Every package is kept, files are deduplicated by SHA-256 and compressed with zstd unless that does not shrink them, and files over 256 MiB are stored raw. Output is byte-identical on every platform: compression is single-threaded with every frame parameter set explicitly, and zstd is always bundled so all builds use the same version. A low-storage mode deletes each source file once its extent is synced and journaled, and an interrupted run resumes from the journal. Assisted-by: Claude Opus 5.5 (wrote the packer, its EdenPack-free dump detection, the aligned record layout and the deterministic zstd setup; ran the Raiders and Donkey Kong Bananza packs and boot checks) * tests: cover the NUP packer Round-trips a dump through NupContainer, checks standalone updates, a bare exefs/romfs dump, low-storage resume and overwrite rejection, and pins the hash of a packed dump so changes to the output are deliberate. Assisted-by: Claude Opus 5.5 (wrote the tests, including the pinned output hash) * qt: add Convert to NUP to the game list Shown for loose dumps. Asks for confirmation with the estimated space, offers low-storage mode, runs in the background with progress and cancel, and resumes an interrupted low-storage conversion. Assisted-by: Claude Opus 5.5 (wrote the Convert to NUP action and its progress and resume handling) * cli: add --pack-nup <dump> [out.nup] Assisted-by: Claude Opus 5.5 (wrote the --pack-nup option)
* vulkan: repack 69-byte vertices to 72 bytes (#281)Mako43 hours1-0/+1
| | | | | | | | | | | | | | | | Splatoon Raiders draws with a 69-byte vertex stride and a packed 4-byte attribute at byte 65. Those fetches are unaligned, which Vulkan leaves undefined: NVIDIA reads them as meant, the AMD Windows driver does not, and the outdoor scenes turn into a white haze with horizontal streaks. When a binding uses that layout, a compute pass copies it to a 72-byte stride with the tail moved to byte 68, and the vertex input offsets and stride follow. EGLANTINE_TEST_VERTEX_REPACK=0 turns it off; EGLANTINE_EXPERIMENTAL_STATIC_VERTEX_REPACK=1 also covers pipelines without dynamic vertex input. Based on an outside patch (02-portable-vertex-repacking). Changes from it: a range over the device limits skips the repack instead of throwing, and the pipeline cache version stays, so caches are kept.
* fix: restore Mario Kart World text by accepting R0 shader returnsxtam4 days1-0/+1
| | | | | | | | Do not treat the reserved destination field of Ampere RET as a write to the return-link register. Keep return linkage validation and rejection of actual link-register writes. Add three regression tests covering R0 and R55 links, copied links, and overwritten links. Validation: 10 assertions pass; user confirmed the compiled patch restores text in Mario Kart World. AI-assisted implementation and commit message using OpenAI Codex.
* Revert "Import experimental NS2 support and accumulated GPU fixes"Takoroka6 days1-8/+0
| | | | | This reverts commit 535b676970. The Switch 2 support comes from the nx2 work instead, merged next.
* Import experimental NS2 support and accumulated GPU fixesyumekiru6 days1-0/+8
| | | | | | | | | | | Bring the NS2 patch and local follow-up fixes onto Eglantine master. Includes native graphics services, instruction translation, syncpoint cancellation acknowledgement, texture handling and diagnostics. Experimental checkpoint; not ready to merge. The original Eden build passed, but this rebased branch has not been built or tested. Assisted-by: OpenAI Codex (implementation, debugging, tests and PR preparation)
* [cmake] fixes for XCode when having languages other than C/C++ (#3772)lizzie2026-03-261-5/+5
| | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3772 Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [tests] fix compile+linking issues with PlayTime (#3345)lizzie2026-01-191-0/+1
| | | | | | | | | | | | | fixes linking + comp issues but not the test themselves, who have now became invalid Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: DraVee <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3345 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] allow static MinGW/macOS builds; fix clangarm64 (#2994)crueter2025-11-111-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Requires qt6-static, obviously... at least for eden. eden-cli also can be built fully static Notable challenges n such: 1. VkMemAlloc conflicts with Qt, since it embeds vk_mem_alloc.h in qrhivulkan; we can get around this by conditionally defining VMA_IMPLEMENTATION; that is, define it in the SDL2 frontend and undef it in the Qt frontend. It's not ideal, but I mean... it works, no? 2. find_library, pkgconfig, and some Config modules will always look for a .dll, so we have to tell CMake to look for .a 3. In spite of this, some will end up using .dll.a (implib) as their link targets; this is, well, bad, so we create a find_library hook that rejects dll.a 4. Some libraries have specific configs (boost lol) 5. Some libraries use _static targets (zstd, mbedtls) 6. Some extra libraries need to be linked, i.e. jbig, lzma, etc 7. QuaZip is sad Needs testing on all platforms, and for both frontends on desktop, to ensure Vulkan still works as expected. (also: CI). Resulting executables are: - 71MB for eden.exe - 39MB for eden-cli.exe Considering the entire libicudt is included (thanks Qt), that's a great size all things considered. No need to bundle all those plugins and translation files too. Theoretically, this lays the groundwork towards fully static executables for other platforms too; though Linux doesn't have a huge benefit since AppImages are needed regardless. eden-room though maybe? Fixes comp for clangarm64 because -msse4.1 Also allows macOS to build with qt6-static. macOS can't build static executables, but with these changes it ONLY relies on system libraries like libc and frameworks. So in theory we don't even need macdeployqt. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2994
* nuke: Goodbye PCH, you will not be missed (#2821)Caio Oliveira2025-10-271-5/+0
| | | | | | | | Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2821 Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-committed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
* [cmake] fix video_core and tests comp errors on Windows (#2631)crueter2025-10-051-1/+4
| | | | | | | | | | | did not link to video_core thus did not properly propagate the GPUOpen target thus failed to find vk_mem_alloc also msvc sucks Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2631 Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* Tests: Add memory tracker tests.Fernando Sahmkow2023-04-291-1/+1
|
* tests: Implement tests for verifying HashValueMorph2023-03-251-0/+1
| | | | Values were randomly generated and the verification was done against boost 1.79.
* tests: update catch2 to 3.0.1Alexandre Bouvier2023-01-051-2/+1
|
* MacroHLE: Reduce massive calculations on sizing estimation.Fernando Sahmkow2023-01-011-0/+1
|
* tests: Add ScratchBuffer testsameerj2022-12-191-0/+1
|
* CMake: Use precompiled headersameerj2022-11-291-0/+5
|
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
* yuzu: Add ui files for multiplayer roomsFearlessTobi2022-07-251-1/+1
|
* cmake: make tests optionalAlexandre Bouvier2022-01-121-1/+1
|
* [input_common] Add completion test for CalibrationConfigurationJobvperus2021-11-291-1/+2
|
* common: Add unique functionReinUsesLisp2021-07-081-0/+1
|
* tests: Add tests for host memoryReinUsesLisp2021-06-111-0/+1
|
* [network] Error handling reformcomex2021-02-281-0/+1
| | | | | | | | | | | | | | | | | | | | | `network.cpp` has several error paths which either: - report "Unhandled host socket error=n" and return `SUCCESS`, or - switch on a few possible errors, log them, and translate them to Errno; the same switch statement is copied and pasted in multiple places in the code Convert these paths to use a helper function `GetAndLogLastError`, which is roughly the equivalent of one of the switch statements, but: - handling more cases (both ones that were already in `Errno`, and a few more I added), and - using OS functions to convert the error to a string when logging, so it'll describe the error even if it's not one of the ones in the switch statement. - To handle this, refactor the logic in `GetLastErrorMsg` to expose a new function `NativeErrorToString` which takes the error number explicitly as an argument. And improve the Windows version a bit. Also, add a test which exercises two random error paths.
* tests: Add tests for CityHashReinUsesLisp2021-02-181-0/+1
|
* Merge pull request #5262 from ReinUsesLisp/buffer-baseRodrigo Locatti2021-01-161-0/+1
|\ | | | | buffer_cache/buffer_base: Add a range tracking buffer container and tests
| * tests: Add unit tests for the GPU range tracking buffer containerReinUsesLisp2021-01-131-0/+1
| | | | | | | | | | | | | | | | | | Due to how error prone the container design is, this commit adds unit tests for it. Some tests taken from here are based on bugs from using this buffer container in games, so if we ever break it in the future in a way that might harm games, the tests should fail.
* | common/bit_util: Replace CLZ/CTZ operations with standardized onesLioncash2021-01-151-1/+0
|/ | | | Makes for less code that we need to maintain.
* memory: Remove MemoryHookMerryMage2021-01-011-2/+0
|
* hle: kernel: Separate KScheduler from GlobalSchedulerContext class.bunnei2020-12-061-1/+0
|
* General: Recover Prometheus project from harddrive failure Fernando Sahmkow2020-06-271-1/+0
| | | | | | | This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
* Tests: Add base tests to host timingFernando Sahmkow2020-06-181-0/+1
|
* Tests: Add tests for fibers and refactor/fix Fiber classFernando Sahmkow2020-06-181-0/+1
|
* Add MultiLevelQueue TestsFernando Sahmkow2019-03-271-0/+1
|
* Implement intrinsics CountTrailingZeroes and test it.Fernando Sahmkow2019-03-271-0/+1
|
* common/bitfield: make it endianness-awareWeiyi Wang2019-02-061-0/+1
|
* Tests: Remove glad test OS X work-aroundYuri Kunde Schlesner2018-09-151-2/+0
|
* common: Implement a ring bufferMerryMage2018-09-081-0/+1
|
* core/memory: Get rid of 3DS leftoversLioncash2018-08-031-1/+0
| | | | Removes leftover code from citra that isn't needed.
* Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-181-1/+0
| | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* CMakeLists: Derive the source directory grouping from targets themselvesLioncash2018-01-171-15/+11
| | | | | Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases.
* CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n302018-01-081-0/+1
| | | | * CoreTiming: New CoreTiming; Add Test for CoreTiming
* arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei2018-01-021-1/+0
|
* hle: Initial implementation of NX service framework and IPC.bunnei2017-10-141-1/+0
|