Test asset tag function of IPMI.

Test cases added:
    - Set Asset Tag With Valid String Length
    - Set Asset Tag With Invalid String Length
    - Set Asset Tag With Valid String Length Via REST

Resolves openbmc/openbmc-test-automation#775

Change-Id: I19a136548cf87e08a6a9a80ed97b8040f8e8e6db
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/tests/ipmi/test_general_ipmi.robot b/tests/ipmi/test_general_ipmi.robot
new file mode 100644
index 0000000..753507e
--- /dev/null
+++ b/tests/ipmi/test_general_ipmi.robot
@@ -0,0 +1,51 @@
+*** Settings ***
+Documentation       This suite is for testing general IPMI functions.
+
+Resource            ../../lib/ipmi_client.robot
+Resource            ../../lib/openbmc_ffdc.robot
+
+Test Teardown       FFDC On Test Case Fail
+
+*** Variables ***
+
+*** Test Cases ***
+
+Set Asset Tag With Valid String Length
+    [Documentation]  Set asset tag with valid string length and verify.
+    [Tags]  Set_Asset_Tag_With_Valid_String_Length
+
+    # Allowed MAX characters length for asset tag name is 63.
+    ${random_string}=  Generate Random String  63
+    Run Keyword  Run IPMI Standard Command  dcmi set_asset_tag ${random_string}
+
+    ${asset_tag}=  Run Keyword  Run IPMI Standard Command  dcmi asset_tag
+    Should Contain  ${asset_tag}  ${random_string}
+
+
+Set Asset Tag With Invalid String Length
+    [Documentation]  Verify error while setting invalid asset tag via IPMI.
+    [Tags]  Set_Asset_Tag_With_Invalid_String_Length
+
+    # Any string more than 63 character is invalid for asset tag.
+    ${random_string}=  Generate Random String  64
+
+    ${resp}=  Run Keyword And Expect Error  *  Run IPMI Standard Command
+    ...  dcmi set_asset_tag ${random_string}
+    Should Contain  ${resp}  Parameter out of range  ignore_case=True
+
+
+Set Asset Tag With Valid String Length Via REST
+    [Documentation]  Set valid asset tag via REST and verify.
+    [Tags]  Set_Asset_Tag_With_Valid_String_Length_Via_REST
+
+    ${random_string}=  Generate Random String  63
+    ${args}=  Create Dictionary  data=${random_string}
+    Write Attribute  /xyz/openbmc_project/inventory/system  AssetTag
+    ...  data=${args}
+
+    ${asset_tag}=  Read Attribute  /xyz/openbmc_project/inventory/system
+    ...  AssetTag
+    Should Be Equal As Strings  ${asset_tag}  ${random_string}
+
+
+*** Keywords ***