blob: 3053d84d943b526725af7428e75daca635386027 [file] [log] [blame]
#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