From f7a3d6cb8b664e29288d289e7f872a8bd48dc7af Mon Sep 17 00:00:00 2001 From: scawful Date: Wed, 14 Aug 2024 00:59:31 -0400 Subject: [PATCH] chore: Refactor RomTest to include ReadLong and ReadBytes tests --- src/test/rom_test.cc | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/test/rom_test.cc b/src/test/rom_test.cc index c46e851b..3562b0cc 100644 --- a/src/test/rom_test.cc +++ b/src/test/rom_test.cc @@ -75,5 +75,43 @@ TEST_F(RomTest, ReadWordInvalid) { StatusIs(absl::StatusCode::kFailedPrecondition)); } +TEST_F(RomTest, ReadLongOk) { + EXPECT_OK(rom_.LoadFromBytes(kMockRomData)); + + for (size_t i = 0; i < kMockRomData.size(); i += 4) { + // Little endian + EXPECT_THAT(rom_.ReadLong(i), + IsOkAndHolds((kMockRomData[i]) | kMockRomData[i] | + kMockRomData[i + 1] << 8 | + kMockRomData[i + 2] << 16)); + } +} + +TEST_F(RomTest, ReadLongInvalid) { + EXPECT_THAT(rom_.ReadLong(0).status(), + StatusIs(absl::StatusCode::kFailedPrecondition)); +} + +TEST_F(RomTest, ReadBytesOk) { + EXPECT_OK(rom_.LoadFromBytes(kMockRomData)); + + std::vector bytes; + ASSERT_OK_AND_ASSIGN(bytes, rom_.ReadByteVector(0, kMockRomData.size())); + EXPECT_THAT(bytes, ::testing::ContainerEq(kMockRomData)); +} + +TEST_F(RomTest, ReadBytesInvalid) { + EXPECT_THAT(rom_.ReadByteVector(0, 1).status(), + StatusIs(absl::StatusCode::kFailedPrecondition)); +} + +TEST_F(RomTest, ReadBytesOutOfRange) { + EXPECT_OK(rom_.LoadFromBytes(kMockRomData)); + + std::vector bytes; + EXPECT_THAT(rom_.ReadByteVector(kMockRomData.size() + 1, 1).status(), + StatusIs(absl::StatusCode::kOutOfRange)); +} + } // namespace test } // namespace yaze \ No newline at end of file