diff --git a/systest/htx_hardbootme_test.robot b/systest/htx_hardbootme_test.robot
old mode 100644
new mode 100755
index 428bf11..be2d920
--- a/systest/htx_hardbootme_test.robot
+++ b/systest/htx_hardbootme_test.robot
@@ -1,7 +1,32 @@
 *** Settings ***
-Documentation    Stress the system using HTX exerciser.
 
-Resource         ../syslib/utils_os.robot
+Documentation  Stress the system using HTX exerciser.
+
+# Test Parameters:
+# OPENBMC_HOST        The BMC host name or IP address.
+# OS_HOST             The OS host name or IP Address.
+# OS_USERNAME         The OS login userid (usually root).
+# OS_PASSWORD         The password for the OS login.
+# HTX_DURATION        Duration of HTX run, for example, 8 hours, or
+#                     30 minutes.
+# HTX_LOOP            The number of times to loop HTX.
+# HTX_INTERVAL        The time delay between consecutive checks of HTX
+#                     status, for example, 30s.
+#                     In summary: Run HTX for $HTX_DURATION, looping
+#                     $HTX_LOOP times checking every $HTX_INTERVAL.
+# HTX_KEEP_RUNNING    If set to 1, this indicates that the HTX is to
+#                     continue running after an error.
+# CHECK_INVENTORY     If set to 1, this enables OS inventory checking
+#                     before and after each HTX run.  This parameter
+#                     is optional.
+# PREV_INV_FILE_PATH  The file path and name of a previous inventory
+#                     snapshot file.  After HTX start the system inventory
+#                     is compared to the contents of this file.  Setting this
+#                     parameter is optional.  CHECK_INVENTORY does not
+#                     need to be set if PREV_INV_FILE_PATH is set.
+
+Resource        ../syslib/utils_os.robot
+Library         ../syslib/utils_keywords.py
 
 Suite Setup     Run Key  Start SOL Console Logging
 Test Setup      Pre Test Case Execution
@@ -9,7 +34,13 @@
 
 *** Variables ****
 
-${stack_mode}        skip
+${stack_mode}                skip
+${json_initial_file_path}    ${EXECDIR}/data/os_inventory_initial.json
+${json_final_file_path}      ${EXECDIR}/data/os_inventory_final.json
+${json_diff_file_path}       ${EXECDIR}/data/os_inventory_diff.json
+${last_inventory_file_path}  ${EMPTY}
+${run_the_inventory}         0
+&{ignore_dict}               processor=size
 
 *** Test Cases ***
 
@@ -20,26 +51,49 @@
     Rprintn
     Rpvars  HTX_DURATION  HTX_INTERVAL
 
-    Repeat Keyword  ${HTX_LOOP} times  Start HTX Exerciser
+    # Set last inventory file to PREV_INV_FILE_PATH otherwise set
+    # it to ${EMPTY}.
+    ${last_inventory_file_path}=  Get Variable Value  ${PREV_INV_FILE_PATH}
+    ...  ${EMPTY}
+
+    # Set ${run_the_inventory} if PREV_INV_FILE_PATH was specified,
+    # else set ${run_the_inventory} from the ${CHECK_INVENTORY} parameter.
+    ${run_the_inventory}=  Run Keyword If
+    ...  '${last_inventory_file_path}' != '${EMPTY}'  Set Variable  ${1}
+    ...  ELSE  Run Keyword If  '${last_inventory_file_path}' == '${EMPTY}'
+    ...  Get Variable Value  ${CHECK_INVENTORY}  ${EMPTY}
+
+    Set Suite Variable  ${run_the_inventory}  children=true
+    Set Suite Variable  ${last_inventory_file_path}  children=true
+
+    Repeat Keyword  ${HTX_LOOP} times  Run HTX Exerciser
 
 
 *** Keywords ***
 
-Start HTX Exerciser
-    [Documentation]  Start HTX exerciser.
+Run HTX Exerciser
+    [Documentation]  Run HTX exerciser.
     # Test Flow:
-    #              - Power on
-    #              - Establish SSH connection session
-    #              - Create HTX mdt profile
-    #              - Run HTX exerciser
-    #              - Check HTX status for errors
-    #              - Power off
+    # - Power on.
+    # - Establish SSH connection session.
+    # - Do inventory collection, compare with
+    #   previous inventory run if applicable.
+    # - Create HTX mdt profile.
+    # - Run HTX exerciser.
+    # - Check HTX status for errors.
+    # - Do inventory collection, compare with
+    #   previous inventory run.
+    # - Power off.
 
     Boot To OS
 
     # Post Power off and on, the OS SSH session needs to be established.
     Login To OS
 
+    Run Keyword If  '${run_the_inventory}' != '${EMPTY}'
+    ...  Do Inventory And Compare  ${json_initial_file_path}
+    ...  ${last_inventory_file_path}
+
     Run Keyword If  '${HTX_MDT_PROFILE}' == 'mdt.bu'
     ...  Create Default MDT Profile
 
@@ -49,6 +103,10 @@
 
     Shutdown HTX Exerciser
 
+    Run Keyword If  '${run_the_inventory}' != '${EMPTY}'
+    ...  Do Inventory And Compare  ${json_final_file_path}
+    ...  ${last_inventory_file_path}
+
     Power Off Host
 
     # Close all SSH and REST active sessions.
@@ -58,9 +116,51 @@
     Rprint Timen  HTX Test ran for: ${HTX_DURATION}
 
 
+Do Inventory and Compare
+    [Documentation]  Do inventory and compare.
+    [Arguments]  ${inventory_file_path}  ${last_inventory_file_path}
+    # Description of argument(s):
+    # inventory_file_path        The file to receive the inventory snapshot.
+    # last_inventory_file_path   The previous inventory to compare with.
+
+    Create JSON Inventory File  ${inventory_file_path}
+    Run Keyword If  '${last_inventory_file_path}' != '${EMPTY}'
+    ...  Compare Json Inventory Files  ${inventory_file_path}
+    ...  ${last_inventory_file_path}
+    ${last_inventory_file_path}=   Set Variable  ${inventory_file_path}
+    Set Suite Variable  ${last_inventory_file_path}  children=true
+
+
+Compare Json Inventory Files
+    [Documentation]  Compare JSON inventory files.
+    [Arguments]  ${file1}  ${file2}
+    # Description of argument(s):
+    # file1   A file that has an inventory snapshot in JSON format.
+    # file2   A file that has an inventory snapshot, to compare with file1.
+
+    ${diff_rc}=  JSON_Inv_File_Diff_Check  ${file1}
+     ...  ${file2}  ${json_diff_file_path}  ${ignore_dict}
+    Run Keyword If  '${diff_rc}' != '${0}'
+    ...  Report Inventory Mismatch  ${diff_rc}  ${json_diff_file_path}
+
+
+Report Inventory Mismatch
+    [Documentation]  Report inventory mismatch.
+    [Arguments]  ${diff_rc}  ${json_diff_file_path}
+    # Description of argument(s):
+    # diff_rc              The failing return code from the difference check.
+    # json_diff_file_path  The file that has the latest inventory snapshot.
+
+    Log To Console  Difference in inventory found, return code:
+    ...  no_newline=true
+    Log to Console  ${diff_rc}
+    Log to Console  Differences are listed in file:  no_newline=true
+    Log to Console  ${json_diff_file_path}
+    Fail  Inventory mismatch, rc=${diff_rc}
+
+
 Loop HTX Health Check
     [Documentation]  Run until HTX exerciser fails.
-
     Repeat Keyword  ${HTX_DURATION}
     ...  Run Keywords  Check HTX Run Status
     ...  AND  Sleep  ${HTX_INTERVAL}
@@ -73,7 +173,8 @@
     # 3. Close all open SSH connections.
 
     # Keep HTX running if user set HTX_KEEP_RUNNING to 1.
-    Run Keyword If  '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0}
+    Run Keyword If
+    ...  '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0}
     ...  Shutdown HTX Exerciser
 
     ${keyword_buf}=  Catenate  Stop SOL Console Logging
