fw-update/test: fix ComponentClassification DSP0267 v1.0.0 defines Table 19 for ComponentClassification values, value 0x10 is not allowed. Replace with arbitrary value 0x0b which is in-spec. Tested: package now passes the libpldm++ parser which uses libpldm iterator APIs internally. Those do check the package more strictly. Change-Id: Ida46e4a7c37186337b695109941b61e252172c9d Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/fw-update/test/package_parser_test.cpp b/fw-update/test/package_parser_test.cpp index b53da29..003cb21 100644 --- a/fw-update/test/package_parser_test.cpp +++ b/fw-update/test/package_parser_test.cpp
@@ -1,5 +1,7 @@ #include "fw-update/package_parser.hpp" +#include <libpldm/edac.h> + #include <typeinfo> #include <gmock/gmock.h> @@ -96,15 +98,22 @@ 0x69, 0x6F, 0x6E, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x35, 0x0A, 0x00, 0xC8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x61, 0x01, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6F, 0x6E, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x36, 0x10, 0x00, + 0x69, 0x6F, 0x6E, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x36, 0x0b, 0x00, 0x2C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x0C, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6F, 0x6E, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x37, 0xF1, 0x90, - 0x9C, 0x71}; + 0x69, 0x6F, 0x6E, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x37}; + + const uint32_t check = pldm_edac_crc32(fwPkgHdr.data(), fwPkgHdr.size()); + + const auto checksum = + std::bit_cast<std::array<uint8_t, sizeof(check)>>(check); + fwPkgHdr.insert(fwPkgHdr.end(), checksum.begin(), checksum.end()); + + const uintmax_t pkgHeaderSize = fwPkgHdr.size(); + EXPECT_EQ(pkgHeaderSize, 326); constexpr uintmax_t pkgSize = 407; - constexpr uintmax_t pkgHeaderSize = 326; - constexpr uintmax_t pkgImageSize = (pkgSize - pkgHeaderSize) / 3; + const uintmax_t pkgImageSize = (pkgSize - pkgHeaderSize) / 3; std::vector<uint8_t> compImage1, compImage2, compImage3; imageGenerate(compImage1, pkgImageSize); imageGenerate(compImage2, pkgImageSize); @@ -157,7 +166,7 @@ ComponentImageInfos compImageInfos{ {10, 100, 0xFFFFFFFF, 0, 0, 326, 27, "VersionString5"}, {10, 200, 0xFFFFFFFF, 0, 1, 353, 27, "VersionString6"}, - {16, 300, 0xFFFFFFFF, 1, 12, 380, 27, "VersionString7"}}; + {11, 300, 0xFFFFFFFF, 1, 12, 380, 27, "VersionString7"}}; EXPECT_EQ(outCompImageInfos, compImageInfos); }