pdr.cpp (fae3641d95371a4cb089b413ef87708afffbdbac) pdr.cpp (e7f55113922cbde6fea1cc8b0b1548e55b0982d9)
1#include <endian.h>
2#include <libpldm/pdr.h>
3#include <libpldm/platform.h>
4
5#include <array>
6#include <cstdint>
7#include <cstdlib>
8#include <cstring>

--- 467 unchanged lines hidden (view full) ---

476 pldm_pdr_destroy(repo);
477}
478
479TEST(PDRUpdate, testAddFruRecordSet)
480{
481 auto repo = pldm_pdr_init();
482
483 uint32_t handle = 0;
1#include <endian.h>
2#include <libpldm/pdr.h>
3#include <libpldm/platform.h>
4
5#include <array>
6#include <cstdint>
7#include <cstdlib>
8#include <cstring>

--- 467 unchanged lines hidden (view full) ---

476 pldm_pdr_destroy(repo);
477}
478
479TEST(PDRUpdate, testAddFruRecordSet)
480{
481 auto repo = pldm_pdr_init();
482
483 uint32_t handle = 0;
484 EXPECT_EQ(
485 pldm_pdr_add_fru_record_set_check(repo, 1, 10, 1, 0, 100, &handle), 0);
484 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 10, 1, 0, 100, &handle), 0);
486 EXPECT_EQ(handle, 1u);
487 EXPECT_EQ(pldm_pdr_get_record_count(repo), 1u);
488 EXPECT_EQ(pldm_pdr_get_repo_size(repo),
489 sizeof(pldm_pdr_hdr) + sizeof(pldm_pdr_fru_record_set));
490 uint32_t size{};
491 uint32_t nextRecHdl{};
492 uint8_t* outData = nullptr;
493 auto hdl = pldm_pdr_find_record(repo, 0, &outData, &size, &nextRecHdl);

--- 10 unchanged lines hidden (view full) ---

504 EXPECT_EQ(fru->terminus_handle, htole16(1));
505 EXPECT_EQ(fru->fru_rsi, htole16(10));
506 EXPECT_EQ(fru->entity_type, htole16(1));
507 EXPECT_EQ(fru->entity_instance_num, htole16(0));
508 EXPECT_EQ(fru->container_id, htole16(100));
509 outData = nullptr;
510
511 handle = 0;
485 EXPECT_EQ(handle, 1u);
486 EXPECT_EQ(pldm_pdr_get_record_count(repo), 1u);
487 EXPECT_EQ(pldm_pdr_get_repo_size(repo),
488 sizeof(pldm_pdr_hdr) + sizeof(pldm_pdr_fru_record_set));
489 uint32_t size{};
490 uint32_t nextRecHdl{};
491 uint8_t* outData = nullptr;
492 auto hdl = pldm_pdr_find_record(repo, 0, &outData, &size, &nextRecHdl);

--- 10 unchanged lines hidden (view full) ---

503 EXPECT_EQ(fru->terminus_handle, htole16(1));
504 EXPECT_EQ(fru->fru_rsi, htole16(10));
505 EXPECT_EQ(fru->entity_type, htole16(1));
506 EXPECT_EQ(fru->entity_instance_num, htole16(0));
507 EXPECT_EQ(fru->container_id, htole16(100));
508 outData = nullptr;
509
510 handle = 0;
512 EXPECT_EQ(
513 pldm_pdr_add_fru_record_set_check(repo, 2, 11, 2, 1, 101, &handle), 0);
511 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 2, 11, 2, 1, 101, &handle), 0);
514 EXPECT_EQ(handle, 2u);
515 EXPECT_EQ(pldm_pdr_get_record_count(repo), 2u);
516 EXPECT_EQ(pldm_pdr_get_repo_size(repo),
517 2 * (sizeof(pldm_pdr_hdr) + sizeof(pldm_pdr_fru_record_set)));
518 hdl = pldm_pdr_find_record(repo, 2, &outData, &size, &nextRecHdl);
519 EXPECT_NE(hdl, nullptr);
520 EXPECT_EQ(size, sizeof(pldm_pdr_hdr) + sizeof(pldm_pdr_fru_record_set));
521 EXPECT_EQ(nextRecHdl, 0u);

--- 36 unchanged lines hidden (view full) ---

558{
559 auto repo = pldm_pdr_init();
560
561 uint16_t terminusHdl{};
562 uint16_t entityType{};
563 uint16_t entityInstanceNum{};
564 uint16_t containerId{};
565 uint32_t first = 1;
512 EXPECT_EQ(handle, 2u);
513 EXPECT_EQ(pldm_pdr_get_record_count(repo), 2u);
514 EXPECT_EQ(pldm_pdr_get_repo_size(repo),
515 2 * (sizeof(pldm_pdr_hdr) + sizeof(pldm_pdr_fru_record_set)));
516 hdl = pldm_pdr_find_record(repo, 2, &outData, &size, &nextRecHdl);
517 EXPECT_NE(hdl, nullptr);
518 EXPECT_EQ(size, sizeof(pldm_pdr_hdr) + sizeof(pldm_pdr_fru_record_set));
519 EXPECT_EQ(nextRecHdl, 0u);

--- 36 unchanged lines hidden (view full) ---

556{
557 auto repo = pldm_pdr_init();
558
559 uint16_t terminusHdl{};
560 uint16_t entityType{};
561 uint16_t entityInstanceNum{};
562 uint16_t containerId{};
563 uint32_t first = 1;
566 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(repo, 1, 1, 1, 0, 100, &first),
567 0);
564 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 1, 1, 0, 100, &first), 0);
568 uint32_t second = 2;
565 uint32_t second = 2;
569 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(repo, 1, 2, 1, 1, 100, &second),
570 0);
566 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 2, 1, 1, 100, &second), 0);
571 uint32_t third = 3;
567 uint32_t third = 3;
572 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(repo, 1, 3, 1, 2, 100, &third),
573 0);
568 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 3, 1, 2, 100, &third), 0);
574 EXPECT_EQ(first, pldm_pdr_get_record_handle(
575 repo, pldm_pdr_fru_record_set_find_by_rsi(
576 repo, 1, &terminusHdl, &entityType,
577 &entityInstanceNum, &containerId)));
578 EXPECT_EQ(second, pldm_pdr_get_record_handle(
579 repo, pldm_pdr_fru_record_set_find_by_rsi(
580 repo, 2, &terminusHdl, &entityType,
581 &entityInstanceNum, &containerId)));

--- 1059 unchanged lines hidden (view full) ---

1641
1642 auto node = pldm_entity_association_tree_add(
1643 tree, &entities[0], 0xffff, nullptr, PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1644 EXPECT_NE(node, nullptr);
1645
1646 auto l1 = pldm_entity_association_tree_add(tree, &entities[1], 63, node,
1647 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1648 uint32_t first = 1;
569 EXPECT_EQ(first, pldm_pdr_get_record_handle(
570 repo, pldm_pdr_fru_record_set_find_by_rsi(
571 repo, 1, &terminusHdl, &entityType,
572 &entityInstanceNum, &containerId)));
573 EXPECT_EQ(second, pldm_pdr_get_record_handle(
574 repo, pldm_pdr_fru_record_set_find_by_rsi(
575 repo, 2, &terminusHdl, &entityType,
576 &entityInstanceNum, &containerId)));

--- 1059 unchanged lines hidden (view full) ---

1636
1637 auto node = pldm_entity_association_tree_add(
1638 tree, &entities[0], 0xffff, nullptr, PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1639 EXPECT_NE(node, nullptr);
1640
1641 auto l1 = pldm_entity_association_tree_add(tree, &entities[1], 63, node,
1642 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1643 uint32_t first = 1;
1649 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(
1650 repo, 1, 1, entities[1].entity_type,
1651 entities[1].entity_instance_num,
1652 entities[1].entity_container_id, &first),
1644 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 1, entities[1].entity_type,
1645 entities[1].entity_instance_num,
1646 entities[1].entity_container_id,
1647 &first),
1653 0);
1654 EXPECT_NE(l1, nullptr);
1655 EXPECT_EQ(entities[1].entity_instance_num, 63);
1656 EXPECT_EQ(first, pldm_pdr_get_record_handle(
1657 repo, pldm_pdr_fru_record_set_find_by_rsi(
1658 repo, 1, &terminusHdl, &entityType,
1659 &entityInstanceNum, &containerId)));
1660 EXPECT_EQ(entityType, 2);
1661 EXPECT_EQ(entityInstanceNum, 63);
1662
1663 auto l2 = pldm_entity_association_tree_add(tree, &entities[2], 37, node,
1664 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1665 uint32_t second = 2;
1648 0);
1649 EXPECT_NE(l1, nullptr);
1650 EXPECT_EQ(entities[1].entity_instance_num, 63);
1651 EXPECT_EQ(first, pldm_pdr_get_record_handle(
1652 repo, pldm_pdr_fru_record_set_find_by_rsi(
1653 repo, 1, &terminusHdl, &entityType,
1654 &entityInstanceNum, &containerId)));
1655 EXPECT_EQ(entityType, 2);
1656 EXPECT_EQ(entityInstanceNum, 63);
1657
1658 auto l2 = pldm_entity_association_tree_add(tree, &entities[2], 37, node,
1659 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1660 uint32_t second = 2;
1666 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(
1667 repo, 1, 2, entities[2].entity_type,
1668 entities[2].entity_instance_num,
1669 entities[2].entity_container_id, &second),
1661 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 2, entities[2].entity_type,
1662 entities[2].entity_instance_num,
1663 entities[2].entity_container_id,
1664 &second),
1670 0);
1671 EXPECT_NE(l2, nullptr);
1672 EXPECT_EQ(entities[2].entity_instance_num, 37);
1673 EXPECT_EQ(second, pldm_pdr_get_record_handle(
1674 repo, pldm_pdr_fru_record_set_find_by_rsi(
1675 repo, 2, &terminusHdl, &entityType,
1676 &entityInstanceNum, &containerId)));
1677 EXPECT_EQ(entityType, 2);
1678 EXPECT_EQ(entityInstanceNum, 37);
1679
1680 auto l3 = pldm_entity_association_tree_add(tree, &entities[3], 44, node,
1681 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1682 uint32_t third = 3;
1665 0);
1666 EXPECT_NE(l2, nullptr);
1667 EXPECT_EQ(entities[2].entity_instance_num, 37);
1668 EXPECT_EQ(second, pldm_pdr_get_record_handle(
1669 repo, pldm_pdr_fru_record_set_find_by_rsi(
1670 repo, 2, &terminusHdl, &entityType,
1671 &entityInstanceNum, &containerId)));
1672 EXPECT_EQ(entityType, 2);
1673 EXPECT_EQ(entityInstanceNum, 37);
1674
1675 auto l3 = pldm_entity_association_tree_add(tree, &entities[3], 44, node,
1676 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1677 uint32_t third = 3;
1683 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(
1684 repo, 1, 3, entities[3].entity_type,
1685 entities[3].entity_instance_num,
1686 entities[3].entity_container_id, &third),
1678 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 3, entities[3].entity_type,
1679 entities[3].entity_instance_num,
1680 entities[3].entity_container_id,
1681 &third),
1687 0);
1688 EXPECT_NE(l3, nullptr);
1689 EXPECT_EQ(entities[3].entity_instance_num, 44);
1690 EXPECT_EQ(third, pldm_pdr_get_record_handle(
1691 repo, pldm_pdr_fru_record_set_find_by_rsi(
1692 repo, 3, &terminusHdl, &entityType,
1693 &entityInstanceNum, &containerId)));
1694 EXPECT_EQ(entityType, 2);
1695 EXPECT_EQ(entityInstanceNum, 44);
1696
1697 auto l4 = pldm_entity_association_tree_add(tree, &entities[4], 89, node,
1698 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1699 uint32_t fourth = 4;
1682 0);
1683 EXPECT_NE(l3, nullptr);
1684 EXPECT_EQ(entities[3].entity_instance_num, 44);
1685 EXPECT_EQ(third, pldm_pdr_get_record_handle(
1686 repo, pldm_pdr_fru_record_set_find_by_rsi(
1687 repo, 3, &terminusHdl, &entityType,
1688 &entityInstanceNum, &containerId)));
1689 EXPECT_EQ(entityType, 2);
1690 EXPECT_EQ(entityInstanceNum, 44);
1691
1692 auto l4 = pldm_entity_association_tree_add(tree, &entities[4], 89, node,
1693 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1694 uint32_t fourth = 4;
1700 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(
1701 repo, 1, 4, entities[4].entity_type,
1702 entities[4].entity_instance_num,
1703 entities[4].entity_container_id, &fourth),
1695 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 4, entities[4].entity_type,
1696 entities[4].entity_instance_num,
1697 entities[4].entity_container_id,
1698 &fourth),
1704 0);
1705 EXPECT_NE(l4, nullptr);
1706 EXPECT_EQ(entities[4].entity_instance_num, 89);
1707 EXPECT_EQ(fourth, pldm_pdr_get_record_handle(
1708 repo, pldm_pdr_fru_record_set_find_by_rsi(
1709 repo, 4, &terminusHdl, &entityType,
1710 &entityInstanceNum, &containerId)));
1711 EXPECT_EQ(entityType, 2);
1712 EXPECT_EQ(entityInstanceNum, 89);
1713
1714 auto l5 = pldm_entity_association_tree_add(tree, &entities[5], 0xffff, node,
1715 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1716 uint32_t fifth = 5;
1699 0);
1700 EXPECT_NE(l4, nullptr);
1701 EXPECT_EQ(entities[4].entity_instance_num, 89);
1702 EXPECT_EQ(fourth, pldm_pdr_get_record_handle(
1703 repo, pldm_pdr_fru_record_set_find_by_rsi(
1704 repo, 4, &terminusHdl, &entityType,
1705 &entityInstanceNum, &containerId)));
1706 EXPECT_EQ(entityType, 2);
1707 EXPECT_EQ(entityInstanceNum, 89);
1708
1709 auto l5 = pldm_entity_association_tree_add(tree, &entities[5], 0xffff, node,
1710 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1711 uint32_t fifth = 5;
1717 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(
1718 repo, 1, 5, entities[5].entity_type,
1719 entities[5].entity_instance_num,
1720 entities[5].entity_container_id, &fifth),
1712 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 5, entities[5].entity_type,
1713 entities[5].entity_instance_num,
1714 entities[5].entity_container_id,
1715 &fifth),
1721 0);
1722 EXPECT_NE(l5, nullptr);
1723 EXPECT_EQ(entities[5].entity_instance_num, 90);
1724 EXPECT_EQ(fifth, pldm_pdr_get_record_handle(
1725 repo, pldm_pdr_fru_record_set_find_by_rsi(
1726 repo, 5, &terminusHdl, &entityType,
1727 &entityInstanceNum, &containerId)));
1728 EXPECT_EQ(entityType, 2);
1729 EXPECT_EQ(entityInstanceNum, 90);
1730
1731 auto l6 = pldm_entity_association_tree_add(tree, &entities[6], 90, node,
1732 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1733 EXPECT_EQ(l6, nullptr);
1734
1735 auto l7 = pldm_entity_association_tree_add(tree, &entities[7], 100, l1,
1736 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1737 uint32_t seventh = 7;
1716 0);
1717 EXPECT_NE(l5, nullptr);
1718 EXPECT_EQ(entities[5].entity_instance_num, 90);
1719 EXPECT_EQ(fifth, pldm_pdr_get_record_handle(
1720 repo, pldm_pdr_fru_record_set_find_by_rsi(
1721 repo, 5, &terminusHdl, &entityType,
1722 &entityInstanceNum, &containerId)));
1723 EXPECT_EQ(entityType, 2);
1724 EXPECT_EQ(entityInstanceNum, 90);
1725
1726 auto l6 = pldm_entity_association_tree_add(tree, &entities[6], 90, node,
1727 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1728 EXPECT_EQ(l6, nullptr);
1729
1730 auto l7 = pldm_entity_association_tree_add(tree, &entities[7], 100, l1,
1731 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1732 uint32_t seventh = 7;
1738 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(
1739 repo, 1, 7, entities[7].entity_type,
1740 entities[7].entity_instance_num,
1741 entities[7].entity_container_id, &seventh),
1733 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 7, entities[7].entity_type,
1734 entities[7].entity_instance_num,
1735 entities[7].entity_container_id,
1736 &seventh),
1742 0);
1743 EXPECT_NE(l7, nullptr);
1744 EXPECT_EQ(entities[7].entity_instance_num, 100);
1745 EXPECT_EQ(seventh, pldm_pdr_get_record_handle(
1746 repo, pldm_pdr_fru_record_set_find_by_rsi(
1747 repo, 7, &terminusHdl, &entityType,
1748 &entityInstanceNum, &containerId)));
1749 EXPECT_EQ(entityType, 3);
1750 EXPECT_EQ(entityInstanceNum, 100);
1751
1752 auto l8 = pldm_entity_association_tree_add(tree, &entities[8], 100, l2,
1753 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1754 uint32_t eighth = 8;
1737 0);
1738 EXPECT_NE(l7, nullptr);
1739 EXPECT_EQ(entities[7].entity_instance_num, 100);
1740 EXPECT_EQ(seventh, pldm_pdr_get_record_handle(
1741 repo, pldm_pdr_fru_record_set_find_by_rsi(
1742 repo, 7, &terminusHdl, &entityType,
1743 &entityInstanceNum, &containerId)));
1744 EXPECT_EQ(entityType, 3);
1745 EXPECT_EQ(entityInstanceNum, 100);
1746
1747 auto l8 = pldm_entity_association_tree_add(tree, &entities[8], 100, l2,
1748 PLDM_ENTITY_ASSOCIAION_PHYSICAL);
1749 uint32_t eighth = 8;
1755 EXPECT_EQ(pldm_pdr_add_fru_record_set_check(
1756 repo, 1, 8, entities[8].entity_type,
1757 entities[8].entity_instance_num,
1758 entities[8].entity_container_id, &eighth),
1750 EXPECT_EQ(pldm_pdr_add_fru_record_set(repo, 1, 8, entities[8].entity_type,
1751 entities[8].entity_instance_num,
1752 entities[8].entity_container_id,
1753 &eighth),
1759 0);
1760 EXPECT_NE(l8, nullptr);
1761 EXPECT_EQ(entities[8].entity_instance_num, 100);
1762 EXPECT_EQ(eighth, pldm_pdr_get_record_handle(
1763 repo, pldm_pdr_fru_record_set_find_by_rsi(
1764 repo, 8, &terminusHdl, &entityType,
1765 &entityInstanceNum, &containerId)));
1766 EXPECT_EQ(entityType, 3);

--- 247 unchanged lines hidden ---
1754 0);
1755 EXPECT_NE(l8, nullptr);
1756 EXPECT_EQ(entities[8].entity_instance_num, 100);
1757 EXPECT_EQ(eighth, pldm_pdr_get_record_handle(
1758 repo, pldm_pdr_fru_record_set_find_by_rsi(
1759 repo, 8, &terminusHdl, &entityType,
1760 &entityInstanceNum, &containerId)));
1761 EXPECT_EQ(entityType, 3);

--- 247 unchanged lines hidden ---