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