xref: /openbmc/libpldm/tests/edac.cpp (revision fd28f9cb6b3da636c0b7b85dbaf6e6a08f9c9b1c)
1*fd28f9cbSAndrew Jeffery /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
2*fd28f9cbSAndrew Jeffery #include <libpldm/edac.h>
3*fd28f9cbSAndrew Jeffery 
4*fd28f9cbSAndrew Jeffery #include <gtest/gtest.h>
5*fd28f9cbSAndrew Jeffery 
TEST(Crc32,CheckSumTest)6*fd28f9cbSAndrew Jeffery TEST(Crc32, CheckSumTest)
7*fd28f9cbSAndrew Jeffery {
8*fd28f9cbSAndrew Jeffery     const char* password = "123456789";
9*fd28f9cbSAndrew Jeffery     auto checksum = pldm_edac_crc32(password, 9);
10*fd28f9cbSAndrew Jeffery     EXPECT_EQ(checksum, 0xcbf43926);
11*fd28f9cbSAndrew Jeffery }
12*fd28f9cbSAndrew Jeffery 
13*fd28f9cbSAndrew Jeffery #ifdef LIBPLDM_API_TESTING
TEST(Crc32,CumulativeCheckSumTest)14*fd28f9cbSAndrew Jeffery TEST(Crc32, CumulativeCheckSumTest)
15*fd28f9cbSAndrew Jeffery {
16*fd28f9cbSAndrew Jeffery     const char* password = "123456789";
17*fd28f9cbSAndrew Jeffery     auto partial_checksum = pldm_edac_crc32_extend(password, 4, 0);
18*fd28f9cbSAndrew Jeffery     auto final_checksum =
19*fd28f9cbSAndrew Jeffery         pldm_edac_crc32_extend(password + 4, 5, partial_checksum);
20*fd28f9cbSAndrew Jeffery     EXPECT_EQ(final_checksum, 0xcbf43926);
21*fd28f9cbSAndrew Jeffery }
22*fd28f9cbSAndrew Jeffery #endif
23*fd28f9cbSAndrew Jeffery 
TEST(Crc8,CheckSumTest)24*fd28f9cbSAndrew Jeffery TEST(Crc8, CheckSumTest)
25*fd28f9cbSAndrew Jeffery {
26*fd28f9cbSAndrew Jeffery     const char* data = "123456789";
27*fd28f9cbSAndrew Jeffery     auto checksum = pldm_edac_crc8(data, 9);
28*fd28f9cbSAndrew Jeffery     EXPECT_EQ(checksum, 0xf4);
29*fd28f9cbSAndrew Jeffery }
30