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();