diff --git a/mnfg/pgood.robot b/mnfg/pgood.robot
deleted file mode 100644
index d989939..0000000
--- a/mnfg/pgood.robot
+++ /dev/null
@@ -1,56 +0,0 @@
-*** Settings ***
-
-Documentation  This test suite verifies pgood state.
-
-Resource  ../lib/rest_client.robot
-Resource  ../lib/utils.robot
-Resource  ../lib/state_manager.robot
-Resource  ../lib/ipmi_client.robot
-
-Variables  ../data/variables.py
-
-*** Variables ***
-
-${POWER_URI}  ${CONTROL_URI}/power0/
-
-*** Test Cases ***
-
-Verify PGood When Power On Using REST
-    [Documentation]  Verify pgood state on good power supply.
-    [Tags]  Verify_PGood_When_Power_On_Using_REST
-
-    # Initiate Host poweron using rest commands.
-    Initiate Host Boot  1
-    ${data}=  Read Attribute  ${POWER_URI}  pgood
-
-    Should Be Equal As Integers  ${data}  1
-
-Verify PGood When Power Off Using REST
-    [Documentation]  Verify pgood state on bad power supply.
-    [Tags]  Verify_PGood_When_Power_Off_Using_REST
-
-    # Initiate Host poweroff using rest commands.
-    Initiate Host PowerOff  1
-    ${data}=  Read Attribute  ${POWER_URI}  pgood
-
-    Should Be Equal As Integers  ${data}  0
-
-Verify PGood When Power On Using IPMI
-    [Documentation]  Verify pgood state when power on using IPMI.
-    [Tags]  Verify_PGood_When_Power_On_Using_IPMI
-
-    # Initiate Host poweron using IPMI commands.
-    Initiate Host Boot Via External IPMI
-    ${data}=  Read Attribute  ${POWER_URI}  pgood
-
-    Should Be Equal As Integers  ${data}  1
-
-Verify PGood When Power Off Using IPMI
-    [Documentation]  Verify pgood state when power off using IPMI.
-    [Tags]  Verify_PGood_When_Power_Off_Using_IPMI
-
-    # Initiate Host poweroff using IPMI commands.
-    Initiate Host PowerOff Via External IPMI
-    ${data}=  Read Attribute  ${POWER_URI}  pgood
-
-    Should Be Equal As Integers  ${data}  0
diff --git a/mnfg/test_factory_reset.robot b/mnfg/test_factory_reset.robot
deleted file mode 100644
index 059375e..0000000
--- a/mnfg/test_factory_reset.robot
+++ /dev/null
@@ -1,82 +0,0 @@
-*** Settings ***
-Documentation   This program performs factory data reset, namely,
-...             network, host and BMC factory reset on DHCP setup.
-
-Resource  ../lib/rest_client.robot
-Resource  ../lib/utils.robot
-Resource  ../lib/connection_client.robot
-Resource  ../lib/boot_utils.robot
-Resource  ../lib/code_update_utils.robot
-Resource  ../lib/ipmi_client.robot
-
-*** Test Cases ***
-
-Initiate Factory Reset And Verify
-    [Documentation]  Factory reset the system.
-    [Tags]  Initiate_Factory_Reset_And_Verify
-
-    Network Factory Reset
-    Software Manager Factory Reset
-
-    # Enable field mode.
-    Enable Field Mode And Verify Unmount
-
-    # Reboot BMC to apply BMC factory reset.
-    OBMC Reboot (off)
-
-    # Check BMC comes up with same IP address.
-    Ping Host  ${OPENBMC_HOST}
-
-    # Check if factory reset has erased read-write and preserved volumes
-    # created by host BIOS and BMC.
-
-    # Sample output:
-    # Filesystem           1K-blocks      Used Available Use% Mounted on
-    # dev                     215188         0    215188   0% /dev
-    # tmpfs                   216104     14372    201732   7% /run
-    # /dev/mtdblock4           14720     14720         0 100% /run/initramfs/ro
-    # /dev/mtdblock5            4096       300      3796   7% /run/initramfs/rw
-    # cow                       4096       300      3796   7% /
-    # tmpfs                   216104         0    216104   0% /dev/shm
-    # tmpfs                   216104         0    216104   0% /sys/fs/cgroup
-    # tmpfs                   216104         0    216104   0% /tmp
-    # tmpfs                   216104        80    216024   0% /var/volatile
-    # tmpfs                   216104         0    216104   0% /usr/local
-    # ubi7:pnor-rw-9ac69aca    13816        16     13052   0% /media/pnor-rw-9ac69aca
-    # /dev/ubiblock7_1         19584     19584         0 100% /media/pnor-ro-9ac69aca
-    # ubi7:pnor-prsv             972        32       872   4% /media/pnor-prsv
-    # ubi7:pnor-patch          13816        16     13056   0% /usr/local/share/pnor
-
-    # Check PNOR and BMC preserved volumes are not deleted.
-
-    ${cmd_output}  ${stderr}  ${rc}=  BMC Execute Command  df
-    Should Contain  ${cmd_output}  pnor-rw  msg=Host factory reset failed.
-    Should Contain  ${cmd_output}  pnor-prsv  msg=Host factory reset failed.
-    Should Contain  ${cmd_output}  var  msg=BMC factory reset failed.
-
-    # Check PNOR read-write and preserved files are deleted.
-    ${cmd_output}  ${stderr}  ${rc}=  BMC Execute Command  ls /media/pnor-prsv
-    Should Be Empty  ${cmd_output}  msg=Host factory reset failed.
-
-    # Check flag "Boot Device Selector" comes up with default value
-    # "No override" after BMC factory reset.
-    ${resp}=  Run IPMI Standard Command  chassis bootparam get 5
-    ${boot_dev}=  Get Lines Containing String  ${resp}  Boot Device Selector
-    Should Contain  ${boot_dev}  No override  msg=BMC factory reset failed.
-
-*** Keywords ***
-
-Network Factory Reset
-    [Documentation]  Network factory reset the BMC node.
-
-    ${data}=  Create Dictionary  data=@{EMPTY}
-    Run Keyword And Ignore Error  OpenBMC Post Request
-    ...  ${NETWORK_MANAGER}action/Reset  data=${data}
-
-Software Manager Factory Reset
-    [Documentation]  Software Manager Factory Reset.
-
-    ${data}=  Create Dictionary  data=@{EMPTY}
-    Run Keyword And Ignore Error  OpenBMC Post Request
-    ...  ${SOFTWARE_VERSION_URI}action/Reset  data=${data}
-
diff --git a/mnfg/test_factory_reset_zero_config.robot b/mnfg/test_factory_reset_zero_config.robot
deleted file mode 100644
index 36ad85e..0000000
--- a/mnfg/test_factory_reset_zero_config.robot
+++ /dev/null
@@ -1,50 +0,0 @@
-*** Settings ***
-Documentation           Verifiy the Network Configuration, Factory Reset and Zero config
-...                      Address
-Resource                ../lib/ipmi_client.robot
-Resource                ../lib/utils.robot
-Resource                ../lib/connection_client.robot
-Resource                ../lib/oem/ibm/serial_console_client.robot
-Resource                ../lib/resource.txt
-Library                 OperatingSystem
-
-Suite Setup         Open Connection And Log In
-Suite Teardown      Close All Connections
-
-*** Test Cases ***
-
-Zero Config
-    [Documentation]   Validate Zero Config IP.
-    ...               Factory-reset system and verify system comes up with Zero Config IP.
-    [Tags]             Zero_Config
-    Factory Reset
-    Validate Zero Config IP   ${OPENBMC_HOST}
-    Revert to Initial Setup   ${OPENBMC_HOST}
-    Ping Host                 ${OPENBMC_HOST}
-
-*** Keywords ***
-
-Factory Reset
-    [Documentation]     Factory-reset the system.
-    Run Dbus IPMI Raw Command   0x32 0xBA 00 00
-    Run Dbus IPMI Raw Command   0x32 0x66
-    Check Host Connection    ${OPENBMC_HOST}
-
-Validate Zero Config IP
-    [Documentation]   Validate zero config IP.
-    [Arguments]       ${ip}
-    Check Host Connection   ${ip}
-
-Check Host Connection
-    [Documentation]  Verify that host can be pinged.
-    [Arguments]     ${host}
-    ${RC}  ${output}=  Run and return RC and Output  ping -c 4 ${host}
-    Log     RC: ${RC}\nOutput:\n${output}
-    Should Not be equal     ${RC}   ${0}
-
-Revert to Initial Setup
-    [Documentation]  Erase zero config IP and restore old IP and route.
-    [Arguments]      ${ip}
-    Open Telnet Connection to BMC Serial Console
-    Telnet.write     ifconfig eth0 ${ip} netmask ${NMASK}
-    Telnet.write     route add default gw ${GW_IP}
