Verify BMC Version matches with firmware inventory

Change-Id: I6f819dc9c5428f8bfde6535b2ca9d154d55f14e7
Signed-off-by: Sivas SRR <sivas.srr@in.ibm.com>
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/redfish/update_service/test_firmware_inventory.robot b/redfish/update_service/test_firmware_inventory.robot
index cd2304a..3a3c0a7 100644
--- a/redfish/update_service/test_firmware_inventory.robot
+++ b/redfish/update_service/test_firmware_inventory.robot
@@ -76,6 +76,34 @@
     \  Should Be Equal As Strings  ${resp_resource.dict["Status"]["State"]}  Enabled
 
 
+Verify BMC Version Matches With FirmwareInventory
+    [Documentation]  Verify BMC version from FirmwareInventory same as in manager.
+    [Tags]  Verify_BMC_Version_Matches_With_FirmwareInventory
+
+    ${bmc_manager}=  Redfish.Get  /redfish/v1/Managers/bmc
+    ${manager_bmc_version}=  Get BMC Version
+    # Check for manager version and cat /etc/os-release.
+    Should Be Equal As Strings
+    ...  ${bmc_manager.dict["FirmwareVersion"]}  ${manager_bmc_version.strip('"')}
+
+    ${resp}=  Redfish.Get  /redfish/v1/UpdateService/FirmwareInventory
+
+    # Entries "Members@odata.count": 3,
+    # {'@odata.id': '/redfish/v1/UpdateService/FirmwareInventory/a3522998'}
+    # {'@odata.id': '/redfish/v1/UpdateService/FirmwareInventory/a7c79f71'}
+    # {'@odata.id': '/redfish/v1/UpdateService/FirmwareInventory/ace821ef'}
+
+    ${actual_count}=  Evaluate  ${resp.dict["Members@odata.count"]}-1
+    :FOR  ${entry}  IN RANGE  0  ${resp.dict["Members@odata.count"]}
+    \  ${resp_resource}=  Redfish.Get  ${resp.dict["Members"][${entry}]["@odata.id"]}
+    # 3rd comparison of BMC version and verify FirmwareInventory bmc version.
+    # Example:
+    # "Version": 2.7.0-dev-19-g9b44ea7
+    \  Exit For Loop If  '${resp_resource.dict["Version"]}' == '${manager_bmc_version.strip('"')}'
+    \  Run Keyword If  '${entry}' == '${actual_count}'  Fail
+    ...  BMC version not there in Firmware Inventory
+
+
 *** Keywords ***
 
 Test Setup Execution