UnitTests: Use hermes.s as part of an actual test

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).
This commit is contained in:
Pokechu22 2022-06-13 17:03:19 -07:00
parent 2193c8964e
commit 3cb0976367
5 changed files with 25 additions and 11 deletions

View File

@ -8,6 +8,7 @@ add_dolphin_test(DSPAssemblyTest
DSP/DSPTestBinary.cpp
DSP/DSPTestText.cpp
DSP/HermesBinary.cpp
DSP/HermesText.cpp
)
add_dolphin_test(ESFormatsTest IOS/ES/FormatsTest.cpp)

View File

@ -8,6 +8,7 @@
#include "DSPTestBinary.h"
#include "DSPTestText.h"
#include "HermesBinary.h"
#include "HermesText.h"
#include <gtest/gtest.h>
@ -129,6 +130,11 @@ TEST(DSPAssembly, ExtendedInstructions)
" ADDAXL'MV $ACC1, $AX1.L : $AX1.H, $AC1.M\n"));
}
TEST(DSPAssembly, HermesText)
{
ASSERT_TRUE(SuperTrip(s_hermes_text));
}
TEST(DSPAssembly, HermesBinary)
{
ASSERT_TRUE(RoundTrip(s_hermes_bin));
@ -143,12 +149,3 @@ TEST(DSPAssembly, DSPTestBinary)
{
ASSERT_TRUE(RoundTrip(s_dsp_test_bin));
}
/*
if (File::ReadFileToString("C:/devkitPro/examples/wii/asndlib/dsptest/dsp_test.ds", &dsp_test))
SuperTrip(dsp_test.c_str());
//.File::ReadFileToString("C:/devkitPro/trunk/libogc/libasnd/dsp_mixer/dsp_mixer.s", &dsp_test);
// This is CLOSE to working. Sorry about the local path btw. This is preliminary code.
*/

View File

@ -9,7 +9,9 @@ SPDX-License-Identifier: BSD-3-Clause
*/
#include "HermesText.h"
const char s_hermes_text[21370] = R"(
/********************************/
/** REGISTER NAMES **/
/********************************/
@ -542,7 +544,11 @@ no_delay:
/////////////////////////////////////
// end of delay time section
/////////////////////////////////////
)" // Work around C2026 on MSVC, which allows at most 16380 single-byte characters in a single
// non-concatenated string literal (but you can concatenate multiple shorter string literals to
// produce a longer string just fine). (This comment is not part of the actual test program,
// and instead there is a single blank line at this location.)
R"(
/* bucle de generacion de samples */
@ -1077,4 +1083,4 @@ polla_loca:
clr $ACC0
jmp recv_cmd
)";

View File

@ -0,0 +1,8 @@
// Copyright 2022 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <string>
extern const char s_hermes_text[21370];

View File

@ -28,6 +28,7 @@
<ClInclude Include="Core\DSP\DSPTestBinary.h" />
<ClInclude Include="Core\DSP\DSPTestText.h" />
<ClInclude Include="Core\DSP\HermesBinary.h" />
<ClInclude Include="Core\DSP\HermesText.h" />
<ClInclude Include="Core\IOS\ES\TestBinaryData.h" />
<ClInclude Include="Core\PowerPC\TestValues.h" />
</ItemGroup>
@ -60,6 +61,7 @@
<ClCompile Include="Core\DSP\DSPTestBinary.cpp" />
<ClCompile Include="Core\DSP\DSPTestText.cpp" />
<ClCompile Include="Core\DSP\HermesBinary.cpp" />
<ClCompile Include="Core\DSP\HermesText.cpp" />
<ClCompile Include="Core\IOS\ES\FormatsTest.cpp" />
<ClCompile Include="Core\IOS\FS\FileSystemTest.cpp" />
<ClCompile Include="Core\MMIOTest.cpp" />