| #include "test/mock_cper_encoder.hpp" |
| |
| #include "gtest/gtest.h" |
| #include <gmock/gmock.h> |
| |
| namespace uefi::cper |
| { |
| class CperEncoderTest : public testing::Test |
| { |
| public: |
| void SetUp() override |
| {} |
| }; |
| |
| TEST_F(CperEncoderTest, SmokeTest) |
| { |
| RecordHeader recordHeader; |
| |
| const std::array<uint8_t, 4> kExpectedSignature = {'C', 'P', 'E', 'R'}; |
| const std::array<uint8_t, 12> kExpectedReserved = {0}; |
| |
| EXPECT_EQ(recordHeader.signature, kExpectedSignature); |
| EXPECT_EQ(recordHeader.revision, 0x0000); |
| EXPECT_EQ(recordHeader.signatureEnd, 0xffffffff); |
| EXPECT_EQ(recordHeader.reserved, kExpectedReserved); |
| |
| // Check for proper packing by putting a needle in the haystack. |
| recordHeader.flags = 0xBEEF; |
| const size_t flagsOffset = 104; |
| |
| std::array<uint8_t, sizeof(recordHeader)> headerBin; |
| memcpy(&headerBin, &recordHeader, sizeof(headerBin)); |
| |
| uint32_t flagsValue; |
| memcpy(&flagsValue, &headerBin[flagsOffset], sizeof(flagsValue)); |
| EXPECT_EQ(recordHeader.flags, flagsValue); |
| } |
| } // namespace uefi::cper |