Port suite from mkumatag personal repo w/o history

All these files came from https://github.com/mkumatag/openbmc-automation
The decision to remove the commit history was because most of the 122
commits did not follow commit comment AND content best practices.
The ability to remove the commit history was possible because all
contributors where from the same company (IBM) making the coordination /
notification/acceptence easy.  See all the gory details about the
first try to commit with history here...
https://github.com/openbmc/openbmc-test-automation/pull/1

This suite of tests will run against an OpenBMC based server.  It will
run good/bad path testing against the REST interface.  There are tests
that will also run ipmitool on the victim BMC too.

If you want to support a new system in to the suite you should only
have to edit two files...
    data/<system>.py
    tox.ini

The README.md contains details on how to setup for the first time along
with how to execute the test suite

NOTE: some test cases require tools that do not exist on the system.
Currently the ipmitool is needed and if you do not manually copy / link
it in to the tools directory some suites will fail.
diff --git a/tests/test_esel.robot b/tests/test_esel.robot
new file mode 100644
index 0000000..50c9267
--- /dev/null
+++ b/tests/test_esel.robot
@@ -0,0 +1,61 @@
+*** Settings ***
+
+Documentation   This suite is for testing esel's mechanism of checking Reservation_ID.
+
+Resource        ../lib/ipmi_client.robot
+
+Suite Setup            Open Connection And Log In
+Suite Teardown         Close All Connections
+
+*** Test Cases ***
+
+Test Wrong Reservation_ID
+   [Documentation]   This testcase is to test BMC can handle multi-requestor's
+   ...               oem partial add command with incorrect reservation id.
+   ...               It simulates sending partial add command with fake content
+   ...                and wrong Reservation ID. This command will be rejected.
+   
+    ${rev_id_1} =    Run IPMI Command Returned   0x0a 0x42
+    ${rev_id_ls} =   Get Substring   ${rev_id_1}   1   3
+    ${rev_id_ms} =   Get Substring   ${rev_id_1}   -2
+    Run IPMI command   0x0a 0x42
+    ${output} =      Check IPMI Oempartialadd Reject   0x32 0xf0 0x${rev_id_ls} 0x${rev_id_ms} 0 0 0 0 0 1 2 3 4 5 6 7 8 9 0xa 0xb 0xc 0xd 0xe 0xf
+    Should Contain   ${output}   Reservation cancelled
+
+Test Correct Reservation_ID
+   [Documentation]   This testcase is to test BMC can handle multi-requestor's
+   ...               oem partial add command with correct reservation id. It
+   ...                simulates sending partial add command with fake content
+   ...               and correct Reservation ID. This command will be accepted.
+   
+    Run IPMI command   0x0a 0x42
+    ${rev_id_2} =    Run IPMI Command Returned   0x0a 0x42
+    ${rev_id_ls} =   Get Substring   ${rev_id_2}   1   3
+    ${rev_id_ms} =   Get Substring   ${rev_id_2}   -2
+    ${output} =      Check IPMI Oempartialadd Accept   0x32 0xf0 0x${rev_id_ls} 0x${rev_id_ms} 0 0 0 0 0 1 2 3 4 5 6 7 8 9 0xa 0xb 0xc 0xd 0xe 0xf
+    Should Be Empty    ${output}
+
+Clear Test File
+   [Documentation]   Clear /tmp/esel
+   
+   Execute Command   rm /tmp/esel
+   Execute Command   sync
+
+*** Keywords ***
+
+Run IPMI Command Returned
+    [arguments]    ${args}
+    ${output_1} =    Execute Command    /tmp/ipmitool -I dbus raw ${args}
+    [return]    ${output_1}
+
+Check IPMI Oempartialadd Reject
+    [arguments]    ${args}
+    ${stdout}    ${stderr}    ${output_2}=  Execute Command    /tmp/ipmitool -I dbus raw ${args}    return_stdout=True    return_stderr= True    return_rc=True
+    [return]    ${stderr}
+
+Check IPMI Oempartialadd Accept
+    [arguments]    ${args}
+    ${stdout}    ${stderr}    ${output_3} =    Execute Command    /tmp/ipmitool -I dbus raw ${args}    return_stdout=True    return_stderr= True    return_rc=True
+    Should Be Equal    ${output_3}    ${0}    msg=${stderr}
+    [return]    ${stderr}
+