summaryrefslogtreecommitdiff
path: root/Source/UnitTests/AudioJitTests.cpp
diff options
context:
space:
mode:
authorj4ck.fr0st <j4ck.fr0st@gmail.com>2010-04-13 19:31:31 +0000
committerj4ck.fr0st <j4ck.fr0st@gmail.com>2010-04-13 19:31:31 +0000
commit578828a14203dbf255118669daab5410ab44ea71 (patch)
treeb246f89ed598e6f3d4c7d8e497d01e9c3a567438 /Source/UnitTests/AudioJitTests.cpp
parent122d5e7b4ebd77ab1c802cb91b7587daeb82e241 (diff)
moar testing! changed some things to make it easier to use, added some bits of documentation for other devs eager to use it :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5358 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/UnitTests/AudioJitTests.cpp')
-rw-r--r--Source/UnitTests/AudioJitTests.cpp120
1 files changed, 68 insertions, 52 deletions
diff --git a/Source/UnitTests/AudioJitTests.cpp b/Source/UnitTests/AudioJitTests.cpp
index ec4a21c4af..da38a05aa4 100644
--- a/Source/UnitTests/AudioJitTests.cpp
+++ b/Source/UnitTests/AudioJitTests.cpp
@@ -2,69 +2,78 @@
void nx_dr()
{
- SDSP test_dsp;
- DSPJitTester tester(0x40, 0x04);
-
- for (u16 input_reg = 0; input_reg < 50; input_reg++)
- for (u16 input_wr0 = 0; input_wr0 < 10; input_wr0++)
- {
- memset(&test_dsp, 0, sizeof(SDSP));
- test_dsp.r[DSP_REG_WR0] = input_wr0;
- test_dsp.r[0] = input_reg;
- if (!tester.Test(test_dsp))
- {
- printf("%s Test failed: in = 0x%04x, wr0 = 0x%04x > int = 0x%04x, jit = 0x%04x\n",
- tester.GetInstructionName(),
- input_reg, input_wr0,
- tester.GetLastInterpreterDSP().r[0], tester.GetLastJitDSP().r[0]);
- }
- }
+ DSPJitTester tester(0x8000, 0x0004);
+ tester.AddTestData(DSP_REG_ACC0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.TestAll();
tester.Report();
}
void nx_ir()
{
- SDSP test_dsp;
- DSPJitTester tester(0x40, 0x08);
-
- for (u16 input_reg = 0; input_reg < 50; input_reg++)
- for (u16 input_wr0 = 0; input_wr0 < 10; input_wr0++)
- {
- memset(&test_dsp, 0, sizeof(SDSP));
- test_dsp.r[DSP_REG_WR0] = input_wr0;
- test_dsp.r[0] = input_reg;
- if (!tester.Test(test_dsp))
- {
- printf("%s Test failed: in = 0x%04x, wr0 = 0x%04x > int = 0x%04x, jit = 0x%04x\n",
- tester.GetInstructionName(),
- input_reg, input_wr0,
- tester.GetLastInterpreterDSP().r[0], tester.GetLastJitDSP().r[0]);
- }
- }
+ DSPJitTester tester(0x8000, 0x0008);
+ tester.AddTestData(DSP_REG_ACC0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.TestAll();
tester.Report();
}
void nx_nr()
{
- SDSP test_dsp;
- DSPJitTester tester(0x40, 0x0c);
+ DSPJitTester tester(0x8000, 0x000c);
+ tester.AddTestData(DSP_REG_ACC0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.AddTestData(DSP_REG_IX0);
+ tester.TestAll(true);
+ tester.Report();
+}
- for (u16 input_reg = 0; input_reg < 10; input_reg++)
- for (u16 input_wr0 = 0; input_wr0 < 10; input_wr0++)
- for (u16 input_ix0 = 0; input_ix0 < 10; input_ix0++)
- {
- memset(&test_dsp, 0, sizeof(SDSP));
- test_dsp.r[DSP_REG_IX0] = input_ix0;
- test_dsp.r[DSP_REG_WR0] = input_wr0;
- test_dsp.r[0] = input_reg;
- if (!tester.Test(test_dsp))
- {
- printf("%s Test failed: in = 0x%04x, wr0 = 0x%04x, ix0 = 0x%04x > int = 0x%04x, jit = 0x%04x\n",
- tester.GetInstructionName(),
- input_reg, input_wr0, input_ix0,
- tester.GetLastInterpreterDSP().r[0], tester.GetLastJitDSP().r[0]);
- }
- }
+void dar()
+{
+ DSPJitTester tester(0x0004);
+ tester.AddTestData(DSP_REG_ACC0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.TestAll();
+ tester.Report();
+}
+void iar()
+{
+ DSPJitTester tester(0x0008);
+ tester.AddTestData(DSP_REG_ACC0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.TestAll();
+ tester.Report();
+}
+void subarn()
+{
+ DSPJitTester tester(0x000c);
+ tester.AddTestData(DSP_REG_ACC0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.AddTestData(DSP_REG_IX0);
+ tester.TestAll();
+ tester.Report();
+}
+void addarn()
+{
+ DSPJitTester tester(0x0010);
+ tester.AddTestData(DSP_REG_ACC0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.AddTestData(DSP_REG_IX0);
+ tester.TestAll();
+ tester.Report();
+}
+void sbclr()
+{
+ DSPJitTester tester(0x1200);
+ tester.AddTestData(DSP_REG_SR);
+ tester.TestAll();
+ tester.Report();
+}
+void sbset()
+{
+ DSPJitTester tester(0x1300);
+ tester.AddTestData(DSP_REG_SR);
+ tester.TestAll();
tester.Report();
}
@@ -72,6 +81,13 @@ void AudioJitTests()
{
DSPJitTester::Initialize();
+ dar();
+ iar();
+ subarn();
+ addarn();
+ sbclr();
+ sbset();
+
nx_ir();
nx_dr();
nx_nr();