summaryrefslogtreecommitdiff
path: root/Source/UnitTests
AgeCommit message (Collapse)Author
2023-05-16StringUtil: Move GetEscapedHtml() into Common namespaceLioncash
2023-05-14CMake: Set --output-on-failure flag for unittests target.Admiral H. Curtiss
2023-04-15Common/MathUtil: Move IntLog2 into MathUtil namespaceLioncash
Gets this out of the global namespace.
2023-04-09PowerPC: Refactor to class, move to System.Admiral H. Curtiss
2023-04-05UnitTests: Avoid ppcState global.Admiral H. Curtiss
2023-03-26JitInterface: Convert m_jit to unique_ptr.Admiral H. Curtiss
2023-03-26JitInterface: Refactor to class, move to System.Admiral H. Curtiss
2023-03-25JitBase: Avoid System::GetInstance() and ppcState.Admiral H. Curtiss
2023-03-22Common: Move FixedSizeQueue into Common namespaceLioncash
Gets this out of the global namespace.
2023-03-21Common: Move FPU-related helpers into Common namespaceLioncash
Makes these utilities' namespace consistent with the majority of the Common library.
2023-02-22use std-provided randomness for JitArm64 unittestsShawn Hoffman
decreases runtime significantly and lessens dependency on mbedtls
2023-02-15Add unit test for File::CreateFullPath().Admiral H. Curtiss
2023-01-29CMake: Use imported target for fmt in testsTellowKrinkle
This properly adds the header include paths when using system fmt
2023-01-27PowerPC: Move a few functions to PowerPCState.Admiral H. Curtiss
2023-01-24Common: Replace StringBeginsWith/StringEndsWith with std equivalentsLioncash
Obsoletes these functions in favor of the standard member functions added in C++20.
2023-01-20Externals: Convert gtest to a submodule and update to v1.12.1Pokechu22
2023-01-13UnitTests: Add custom main that calls RegisterMsgAlertHandlerPokechu22
This prevents a failed assertion from hanging on the MSVC buildbots.
2022-12-11Replace BitUtils with C++20: RotateLeft/RotateRightJosJuice
Now that we've flipped the C++20 switch, let's start making use of the nice new <bit> header. I'm planning on handling this move away from BitUtils.h incrementally in a series of PRs. There may be a few functions remaining in BitUtils.h by the end that C++20 doesn't have any equivalents for.
2022-11-27CoreTiming: Store Globals in CoreTimingManager.Admiral H. Curtiss
2022-11-27CoreTiming: Refactor to class.Admiral H. Curtiss
2022-11-26CoreTiming: Move the 'Globals' instance into Core::System.Admiral H. Curtiss
2022-11-23HW: Pass System to MMIO handlers.Admiral H. Curtiss
2022-11-23Merge pull request #11253 from AdmiralCurtiss/core-timing-events-pass-systemMai
CoreTiming: Pass Core::System to Events.
2022-11-22VertexLoader: Eliminate use of DataReaderPokechu22
DataReader is generally jank - it has a start and end pointer, but the end pointer is generally not used, and all of the vertex loaders mostly bypassed it anyways. Wrapper code (the vertex loaer test, as well as Fifo.cpp and OpcodeDecoding.cpp) still uses it, as does the software vertex loader (which is not a subclass of VertexLoader). These can probably be eliminated later.
2022-11-06CoreTiming: Pass Core::System to Events.Admiral H. Curtiss
2022-09-18VertexLoaderTest: Add NormalAllPokechu22
This currently fails for direct with NormalIndex3 enabled (see https://bugs.dolphin-emu.org/issues/12952). The goal of this test is to be able to confidently say that that bug has been fixed.
2022-09-18VertexLoaderTest: Add DirectAllComponentsPokechu22
We have one that does a similar thing, but only to measure speed and uses indices. This one verifies accuracy (and uses the largest possible input size by using direct components).
2022-08-22Merge pull request #10933 from shuffle2/vsAdmiral H. Curtiss
msbuild: fix overbuilding of externals and lessen rebuild likelyhood
2022-08-06Add Discord presence ioctlv to /dev/dolphinInvoxiPlayGames
2022-08-02msbuild: refactor to reduce rebuild eventsShawn Hoffman
* moves dolphin-specific settings out of Base.props * creates exports.props for externals, allowing to easily import individual Externals * corrects some cruft that accumulated and probably contributed to msbuild overbuilding
2022-07-31Merge pull request #10883 from Pokechu22/pi-fifo-reset-gp-fifoTilka
ProcessorInterface: Reset both GPFifo and Fifo on PI_FIFO_RESET
2022-07-27Crypto/SHA1: add unittestsShawn Hoffman
2022-07-26UnitTests: Fix warnings from HermesTextPokechu22
Most of these correspond to changes made in devkitPro/libogc@b1b8ecab3af3745c8df0b401abd512bdf5fcc011. The numeric vlaues of ACC0 and ACC1 in Dolphin are different (see b06d38389bddf9fc5962aecbe1b31292a71b80a5, though I'm not sure when this difference first appeared). Technically it's not even necessary to list the registers at the start like this anymore, but old programs do it, so it seems useful to have a test that covers it. The binary itself does not need to be changed; the warnings were simply stating that "although you wrote $ACL0, the generated binary instead is using $ACC0" or similar; by changing the code to use $ACC0 directly the warnings are resolved.
2022-07-25CPUDetect: improve win/arm64 supportShawn Hoffman
read brand_string on macos/arm64 remove unused flags report family/model info instead of vendor name
2022-07-22Create constant for GPFifo physical addressPokechu22
2022-07-10UnitTests/MovI2R: Test all logical immediatesMerry
2022-06-14UnitTests: Remove unused include from DSPAssemblyTestPokechu22
2022-06-14UnitTests: Fix license for HermesBinary.cppPokechu22
This is an assembled version of HermesText.cpp, so the same license applies to it.
2022-06-14UnitTests: Edit wait_for_dsp_mail in HermesText to match HermesBinaryPokechu22
I don't know what happened here, unfortunately. The version of dsp_mixer.s added to libogc on Nov 14, 2008 in https://github.com/devkitPro/libogc/commit/c76d8b851fafc11b0a5debc0b40842929d5a5825 uses andcf and jlz here, and the version we have matches the one from Feb 5, 2009 in https://github.com/devkitPro/libogc/commit/ae5c3a5fb5aa4ccf1e1374b6e4f6be1aac118693 exactly (prior to the fixes in my previous commit). I can't see any reason why wait_for_dsp_mail would be changed like this. ANDCF and ANDF were previously swapped and JNE/JEQ/JZR/JNZ became JNZ/JZ/JLNZ/JLZ on Apr 3, 2009 in 7c4e6542533f7cef929ce86117b156c714820618, corresponding to a change Hermes made on Nov 10, 2008 in https://github.com/devkitPro/gamecube-tools/commit/2cea6d99ad518c963e24c3e28834473ff5312e69. But these predate the test being added. The only other information I can find is that ASNDLIB 1.0 released on November 11, 2008, at https://web.archive.org/web/20120326145022/http://www.entuwii.net/foro/viewtopic.php?f=6&t=87 (but there aren't any surviving links from there).
2022-06-14UnitTests: Update DSP test text for old renamesPokechu22
This change makes assembling DSPTestText match DSPTestBinary, though HermesText doesn't yet match HermesBinary. The test data was originally added on April 18, 2009 in e7e4ef4481d1c5dcce6463414d815843ae15b8e2. Then, set16 and set40 were swapped on April 22, 2009 89178f411cf1e8ef61b005197545618e53a0d4e8, which updated the DSPSpy version of dsp_code, but not the version in DSPTool used for testing. So, when the test was made, the assembled data matched the text, but a few days after it no longer did. Similarly, on Jul 7, 2009 in 1654c582ab9a6323a31802c4b241c0cffc9d3bca the conditional instructions were adjusted, and 0x1706 was changed from JRL to JRNC and 0x0297 was changed from JGE to JC. For what it's worth, devkitPro made the same changes on May 31, 2010 in https://github.com/devkitPro/gamecube-tools/commit/8a65c85c9b4748ed3dab3c0c85aeb0df95d58cfb and updated their version of the asnd ucode (which is this ucode) on June 11, 2011 in https://github.com/devkitpro/libogc/commit/b1b8ecab3af3745c8df0b401abd512bdf5fcc011 (though this update also includes other feature changes). Note that at the time, they didn't reassemble the ucode unless they made changes to it; the assembled was stored in the repo until https://github.com/devkitPro/libogc/compare/bfb705fe1607a3031d18b65d603975b68a1cffd4~...d20f9bdcfb43260c6c759f4fb98d724931443f93. This fixes the following failures with Hermes: !! 0015 : 8e00 vs 8f00 - set16 vs set40 !! 016f : 8e00 vs 8f00 - set16 vs set40 and with Hermes: !! 0014 : 8e00 vs 8f00 - set16 vs set40 !! 0063 : 8e00 vs 8f00 - set16 vs set40 !! 019b : 1706 vs 1701 - jrnc $AR0 vs jrl $AR0 !! 01bf : 0297 vs 0290 - jc 0x01dc vs jge 0x01dc !! 01d2 : 0297 vs 0290 - jc 0x01dc vs jge 0x01dc Hermes has the remaining failures: !! 027b : 03c0 vs 03a0 - andcf $AC1.M, #0x8000 vs andf $AC1.M, #0x8000 !! 027d : 029d vs 0294 - jlz 0x027a vs jnz 0x027a
2022-06-14UnitTests: Add tests for assembling DSP code to expected binaryPokechu22
We already have the data for this, so this seems like a useful thing to do. However, neither of the new tests currently pass...
2022-06-14UnitTests: Fail DSPAssemblyTest if the assembled code doesn't match the ↵Pokechu22
expected result This reveals that both HermesText and HermesBinary fail. HermesBinary would have failed on master, too, if this had been implemented.
2022-06-14UnitTests: Use fmt::print in DSPAssemblyTestPokechu22
2022-06-14UnitTests: Use fmt::print in PageFaultTestPokechu22
2022-06-14UnitTests: Fix typo in DSPAssemblyTestPokechu22
2022-06-14UnitTests: Use hermes.s as part of an actual testPokechu22
Before, the file just existed as the source code for HermesBinary.cpp, but we can test that things assemble correctly too (compare DSPTestBinary.cpp and DSPTestText.cpp). A bit of jank is needed due to MSVC limitations (see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2026?view=msvc-170).
2022-06-03UnitTests: Fix -Wrange-loop-construct warningsDentomologist
Don't use reference variable bound to a temporary value
2022-06-02Merge pull request #10678 from ↵Pokechu22
Dentomologist/skip_pagefault_test_if_no_exception_handler UnitTests: Skip PageFaultTest if exception handlers aren't supported
2022-05-19UnitTests: Skip PageFaultTest if exception handlers are not supportedDentomologist
Page faults should only occur on architectures that support exception handlers, so skip the test on other architectures to avoid spurious test failures.
2022-05-18Rename CP and XF normal component count enums and update their descriptionsPokechu22