pdr: Add pldm_pdr_delete_by_record_handle() API
Adds a new libpldm API to delete the PDR record from the PDR repo
based on the record handle of the PDR record.
Change-Id: I44f5568aa024660f7d370d9a2c6b3f9286d96ed8
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>
diff --git a/tests/dsp/pdr.cpp b/tests/dsp/pdr.cpp
index e8e2256..3b72cb7 100644
--- a/tests/dsp/pdr.cpp
+++ b/tests/dsp/pdr.cpp
@@ -772,6 +772,38 @@
}
#endif
+#ifdef LIBPLDM_API_TESTING
+TEST(PDRAccess, testRemoveByRecordHandle)
+{
+ std::array<uint8_t, sizeof(pldm_pdr_hdr)> data{};
+
+ auto repo = pldm_pdr_init();
+ uint32_t first = 0;
+ EXPECT_EQ(pldm_pdr_add(repo, data.data(), data.size(), false, 1, &first),
+ 0);
+
+ uint32_t second = 0;
+ EXPECT_EQ(pldm_pdr_add(repo, data.data(), data.size(), false, 1, &second),
+ 0);
+
+ uint32_t third = 0;
+ EXPECT_EQ(pldm_pdr_add(repo, data.data(), data.size(), false, 1, &third),
+ 0);
+
+ EXPECT_EQ(pldm_pdr_get_record_count(repo), 3u);
+
+ int rc = pldm_pdr_delete_by_record_handle(repo, 1, false);
+ EXPECT_EQ(rc, 0);
+ EXPECT_EQ(pldm_pdr_get_record_count(repo), 2u);
+
+ rc = pldm_pdr_delete_by_record_handle(repo, 2, false);
+ EXPECT_EQ(rc, 0);
+ EXPECT_EQ(pldm_pdr_get_record_count(repo), 1u);
+
+ pldm_pdr_destroy(repo);
+}
+#endif
+
TEST(EntityAssociationPDR, testInit)
{
auto tree = pldm_entity_association_tree_init();