From 42d61cfc4c62a38b057a5c6c4be9d35ade3e75c8 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 12 Jan 2024 06:42:51 +0100 Subject: Core/HW/MMIO: Pass System through Read() and Write(). --- Source/UnitTests/Core/MMIOTest.cpp | 40 +++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 14 deletions(-) (limited to 'Source/UnitTests/Core/MMIOTest.cpp') diff --git a/Source/UnitTests/Core/MMIOTest.cpp b/Source/UnitTests/Core/MMIOTest.cpp index a92cdcbc4e..428621cc99 100644 --- a/Source/UnitTests/Core/MMIOTest.cpp +++ b/Source/UnitTests/Core/MMIOTest.cpp @@ -2,6 +2,8 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include + +#include #include #include @@ -10,6 +12,7 @@ #include "Common/FileUtil.h" #include "Core/HW/GPFifo.h" #include "Core/HW/MMIO.h" +#include "Core/System.h" #include "UICommon/UICommon.h" // Tests that the UniqueID function returns a "unique enough" identifier @@ -66,9 +69,18 @@ TEST(IsMMIOAddress, SpecialAddresses) class MappingTest : public testing::Test { protected: - virtual void SetUp() override { m_mapping = new MMIO::Mapping(); } - virtual void TearDown() override { delete m_mapping; } - MMIO::Mapping* m_mapping = nullptr; + virtual void SetUp() override + { + m_system = &Core::System::GetInstance(); + m_mapping = std::make_unique(); + } + virtual void TearDown() override + { + m_system = nullptr; + m_mapping.reset(); + } + Core::System* m_system = nullptr; + std::unique_ptr m_mapping; }; TEST_F(MappingTest, ReadConstant) @@ -77,9 +89,9 @@ TEST_F(MappingTest, ReadConstant) m_mapping->Register(0x0C001234, MMIO::Constant(0x1234), MMIO::Nop()); m_mapping->Register(0x0C001234, MMIO::Constant(0xdeadbeef), MMIO::Nop()); - u8 val8 = m_mapping->Read(0x0C001234); - u16 val16 = m_mapping->Read(0x0C001234); - u32 val32 = m_mapping->Read(0x0C001234); + u8 val8 = m_mapping->Read(*m_system, 0x0C001234); + u16 val16 = m_mapping->Read(*m_system, 0x0C001234); + u32 val32 = m_mapping->Read(*m_system, 0x0C001234); EXPECT_EQ(0x42, val8); EXPECT_EQ(0x1234, val16); @@ -101,19 +113,19 @@ TEST_F(MappingTest, ReadWriteDirect) for (u32 i = 0; i < 100; ++i) { - u8 val8 = m_mapping->Read(0x0C001234); + u8 val8 = m_mapping->Read(*m_system, 0x0C001234); EXPECT_EQ(i, val8); - u16 val16 = m_mapping->Read(0x0C001234); + u16 val16 = m_mapping->Read(*m_system, 0x0C001234); EXPECT_EQ(i, val16); - u32 val32 = m_mapping->Read(0x0C001234); + u32 val32 = m_mapping->Read(*m_system, 0x0C001234); EXPECT_EQ(i, val32); val8 += 1; - m_mapping->Write(0x0C001234, val8); + m_mapping->Write(*m_system, 0x0C001234, val8); val16 += 1; - m_mapping->Write(0x0C001234, val16); + m_mapping->Write(*m_system, 0x0C001234, val16); val32 += 1; - m_mapping->Write(0x0C001234, val32); + m_mapping->Write(*m_system, 0x0C001234, val32); } } @@ -132,9 +144,9 @@ TEST_F(MappingTest, ReadWriteComplex) write_called = true; })); - u8 val = m_mapping->Read(0x0C001234); + u8 val = m_mapping->Read(*m_system, 0x0C001234); EXPECT_EQ(0x12, val); - m_mapping->Write(0x0C001234, (u8)0x34); + m_mapping->Write(*m_system, 0x0C001234, (u8)0x34); EXPECT_TRUE(read_called); EXPECT_TRUE(write_called); -- cgit v1.2.3