diff --git a/extended/test_watchdog.robot b/extended/test_watchdog.robot
new file mode 100644
index 0000000..31381af
--- /dev/null
+++ b/extended/test_watchdog.robot
@@ -0,0 +1,130 @@
+*** Settings ***
+Documentation          This suite tests HOST watchdog timer in Open BMC.
+
+Resource               ../lib/rest_client.robot
+Resource               ../lib/openbmc_ffdc.robot
+Resource               ../lib/utils.robot
+Resource               ../lib/resource.txt
+Resource               ../lib/boot_utils.robot
+
+Suite Setup            Watchdog Timer Test Setup
+Suite Teardown         Restore Watchdog Default Setting
+Test Teardown          FFDC On Test Case Fail
+
+*** Variables ***
+# "skip" boots that aren't needed to get to desired state.
+${stack_mode}  skip
+
+*** Test Cases ***
+Verify Watchdog Setting With Watchdog Disabled
+    [Documentation]  Disable watchdog timer and verify watchdog settings
+    ...              i.e Enabled, Interval, TimeRemaining.
+    [Tags]  Verify_Watchdog_Setting_With_Watchdog_Disabled
+
+    ${initial_interval}=  Read Attribute  ${HOST_WATCH_DOG_URI}  Interval
+    Set Watchdog Setting Using REST  Enabled  ${False}
+
+    # Check if watchdog has default settings.
+    ${properties}=  Read Properties  /xyz/openbmc_project/watchdog/host0
+    Should Be Equal As Strings  ${properties["Enabled"]}  0
+    Should Be Equal As Strings  ${properties["Interval"]}  ${initial_interval}
+    Should Be Equal As Strings  ${properties["TimeRemaining"]}  0
+
+Verify Watchdog Setting With Watchdog Enabled
+    [Documentation]  Enable watchdog timer and check if host OS is rebooted
+    ...              and verify hostdog settings are reset to default when
+    ...              host OS is up.
+    [Tags]  Verify_Watchdog_Setting_With_Watchdog_Enabled
+
+    ${initial_interval}=  Read Attribute  ${HOST_WATCHDOG_URI}  Interval
+
+    Trigger Host Watchdog Error  2000  60
+
+    # Verify if watchdog settings are enabled and timeremaining is reduced.
+    ${properties}=  Read Properties  /xyz/openbmc_project/watchdog/host0
+    Should Be Equal As Strings  ${properties["Enabled"]}  1
+    Should Not Be Equal As Strings  ${properties["TimeRemaining"]}  0
+
+    Wait Until Keyword Succeeds  120 sec  20 sec  Is Host Rebooted
+    Wait For Host To Ping  ${OS_HOST}  5min  10
+    Wait for OS
+
+    # Check if watchdog settings are reset when host OS is up.
+    ${properties}=  Read Properties  /xyz/openbmc_project/watchdog/host0
+    Should Be Equal As Strings  ${properties["Enabled"]}  0
+    Should Be Equal As Strings  ${properties["Interval"]}  ${initial_interval}
+    Should Be Equal As Strings  ${properties["TimeRemaining"]}  0
+
+Modify And Verify Watchdog Timer Interval
+    [Documentation]  Modify and verify watchdog timer interval.
+    [Tags]  Modify_And_Verify_Watchdog_Timer_Interval
+    [Teardown]  Set Watchdog Setting Using REST  Interval  ${initial_interval}
+
+    ${initial_interval}=  Read Attribute  ${HOST_WATCHDOG_URI}  Interval
+    ${random_int}=  Evaluate  random.randint(10000, 20000)  modules=random
+    Set Watchdog Setting Using REST  Interval  ${random_int}
+    ${modified_time_interval}=  Read Attribute  ${HOST_WATCHDOG_URI}  Interval
+    Should Be Equal As Strings  ${modified_time_interval}  ${random_int}
+
+Modify and verify Watchdog TimeRemaining
+    [Documentation]  Modify and verify watchdog 'TimeRemaining'.
+    [Tags]  Modify_And_Verify_Watchdog_TimeRemaining
+
+    ${random_int}=  Evaluate  random.randint(10000, 20000)  modules=random
+    Set Watchdog Setting Using REST  TimeRemaining  ${random_int}
+    ${modified_timeremain}=
+    ...  Read Attribute  ${HOST_WATCHDOG_URI}  TimeRemaining
+    Should Not Be Equal As Strings  ${random_int}  ${modified_timeremain}
+
+Verify Watchdog URL When Host Is On And Off
+    [Documentation]  Verify watchdog URL when host is running
+    ...              and when host is off.
+    [Tags]           Verify_Watchdog_URL_When_Host_Is_On_And_Off
+
+    ${resp}=  OpenBMC Get Request  ${HOST_WATCHDOG_URI}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
+
+    REST Power Off
+    ${resp}=  OpenBMC Get Request  ${HOST_WATCHDOG_URI}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
+
+*** Keywords ***
+
+Watchdog Timer Test Setup
+    [Documentation]   Do test initialization setup.
+    # Check input parameters & check if host OS is up.
+
+    Should Not Be Empty
+    ...   ${OS_HOST}  msg=You must provide the host name/host IP address.
+    Should Not Be Empty
+    ...   ${OS_USERNAME}  msg=You must provide OS host user name.
+    Should Not Be Empty
+    ...   ${OS_PASSWORD}  msg=You must provide OS host user password.
+
+    # Boot to OS.
+    REST Power On
+
+Restore Watchdog Default Setting
+    [Documentation]  Restore watchdog Default setting.
+
+    # Boot to OS.
+    REST Power On
+    Set Watchdog Setting Using REST  Enabled  ${False}
+
+    Close All Connections
+
+Set Watchdog Setting Using REST
+    [Documentation]  Set watchdog setting using REST with a given input
+    ...              attribute values.
+    [Arguments]  ${setting_name}  ${value}
+
+    # Description of argument(s):
+    # setting_name  The name of the watchdog setting
+    #               (e.g. "Enabled", "Interval", etc.).
+    # value         Watchdog setting value(e.g. "Enabled":boolean,
+    #               "Interval":Integer, "TimeRemaining":Integer)
+
+    ${valueDict}=  Create Dictionary  data=${value}
+    ${resp}=  OpenBMC Put Request  ${HOST_WATCHDOG_URI}/attr/${setting_name}
+    ...       data=${valueDict}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
