From 5edeba1b42da47c521ce29601d19233dfdb8c9f8 Mon Sep 17 00:00:00 2001 From: scawful Date: Wed, 14 Aug 2024 01:36:26 -0400 Subject: [PATCH] chore: Refactor RomTest to include ReadTransaction tests --- src/test/rom_test.cc | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/test/rom_test.cc b/src/test/rom_test.cc index 108348d4..87f94a78 100644 --- a/src/test/rom_test.cc +++ b/src/test/rom_test.cc @@ -23,9 +23,14 @@ const static std::vector kMockRomData = { class MockRom : public app::Rom { public: MOCK_METHOD(absl::Status, WriteHelper, (const WriteAction&), (override)); - MOCK_METHOD(absl::Status, ReadHelper, (uint8_t&, int)); - MOCK_METHOD(absl::Status, ReadHelper, (uint16_t&, int)); - MOCK_METHOD(absl::Status, ReadHelper, (std::vector&, int)); + + MOCK_METHOD2(ReadHelper, absl::Status(uint8_t&, int)); + MOCK_METHOD2(ReadHelper, absl::Status(uint16_t&, int)); + MOCK_METHOD2(ReadHelper, absl::Status(std::vector&, int)); + + MOCK_METHOD(absl::StatusOr, ReadByte, (int)); + MOCK_METHOD(absl::StatusOr, ReadWord, (int)); + MOCK_METHOD(absl::StatusOr, ReadLong, (int)); }; class RomTest : public ::testing::Test { @@ -187,6 +192,7 @@ TEST_F(RomTest, WriteLongInvalid) { TEST_F(RomTest, WriteTransactionSuccess) { MockRom mock_rom; + EXPECT_OK(mock_rom.LoadFromBytes(kMockRomData)); EXPECT_CALL(mock_rom, WriteHelper(_)) .WillRepeatedly(Return(absl::OkStatus())); @@ -199,6 +205,7 @@ TEST_F(RomTest, WriteTransactionSuccess) { TEST_F(RomTest, WriteTransactionFailure) { MockRom mock_rom; + EXPECT_OK(mock_rom.LoadFromBytes(kMockRomData)); EXPECT_CALL(mock_rom, WriteHelper(_)) .WillOnce(Return(absl::OkStatus())) @@ -212,32 +219,23 @@ TEST_F(RomTest, WriteTransactionFailure) { TEST_F(RomTest, ReadTransactionSuccess) { MockRom mock_rom; + EXPECT_OK(mock_rom.LoadFromBytes(kMockRomData)); uint8_t byte_val; uint16_t word_val; - EXPECT_CALL(mock_rom, ReadHelper(byte_val, _)) - .WillOnce( - DoAll(testing::SetArgReferee<0>(0xFF), Return(absl::OkStatus()))); + EXPECT_OK(mock_rom.ReadTransaction(byte_val, 0x0000, word_val, 0x0001)); - EXPECT_CALL(mock_rom, ReadHelper(word_val, _)) - .WillOnce( - DoAll(testing::SetArgReferee<0>(0xABCD), Return(absl::OkStatus()))); - - EXPECT_OK(mock_rom.ReadTransaction(byte_val, 0x1000, word_val, 0x1001)); - - EXPECT_EQ(byte_val, 0xFF); - EXPECT_EQ(word_val, 0xABCD); + EXPECT_EQ(byte_val, 0x00); + EXPECT_EQ(word_val, 0x0201); } TEST_F(RomTest, ReadTransactionFailure) { MockRom mock_rom; + EXPECT_OK(mock_rom.LoadFromBytes(kMockRomData)); uint8_t byte_val; - EXPECT_CALL(mock_rom, ReadHelper(byte_val, _)) - .WillOnce(Return(absl::InternalError("Read failed"))); - EXPECT_EQ(mock_rom.ReadTransaction(byte_val, 0x1000), - absl::InternalError("Read failed")); + absl::FailedPreconditionError("Offset out of range")); } } // namespace test