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