Moving tests/test_network.robot to extended use case
As discussed, moving out the network test from CT run.
Note:
Currently the network test are broken, so we are disabling here.
Network manager is getting refactored openbmc/openbmc-test-automation#396
and the test automation equivalent github task to automate this
openbmc/openbmc-test-automation#396
Resolves openbmc/openbmc-test-automation#397
Change-Id: I8562138b70354ba9c709acd83190e3770eeecf0d
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/extended/test_network.robot b/extended/test_network.robot
new file mode 100755
index 0000000..3ad5a95
--- /dev/null
+++ b/extended/test_network.robot
@@ -0,0 +1,166 @@
+*** Settings ***
+Documentation This suite will verifiy the Network Configuration Rest Interfaces
+... Details of valid interfaces can be found here...
+... https://github.com/openbmc/docs/blob/master/rest-api.md
+
+Resource ../lib/rest_client.robot
+Resource ../lib/connection_client.robot
+Resource ../lib/utils.robot
+Resource ../lib/openbmc_ffdc.robot
+Library ../lib/pythonutil.py
+
+Suite Setup Open Connection And Log In
+Suite Teardown Close All Connections
+Test Teardown FFDC On Test Case Fail
+
+Force Tags NetworkManager
+
+*** Variables ***
+
+${NW_MANAGER} ${NETWORK_MANAGER_URI}Interface
+
+*** Test Cases ***
+
+Get the Mac address
+
+ [Documentation] This test case is to get the mac address
+ [Tags] network_test
+ @{arglist}= Create List eth0
+ ${args}= Create Dictionary data=@{arglist}
+ ${resp}= Call Method ${NW_MANAGER} GetHwAddress data=${args}
+ should not be empty ${resp.content}
+ ${json}= to json ${resp.content}
+ should be equal as strings ${json['status']} ok
+ set suite variable ${OLD_MAC_ADDRESS} ${json['data']}
+
+
+Get IP Address with invalid interface
+
+ [Documentation] This test case tries to get the ip addrees with the invalid
+ ... interface,Expectation is it should get error.
+ [Tags] network_test
+
+ @{arglist}= Create List lo01
+ ${args}= Create Dictionary data=@{arglist}
+ ${resp}= Call Method ${NW_MANAGER} GetAddress4 data=${args}
+ should not be equal as strings ${resp.status_code} ${HTTP_OK}
+ ${json}= to json ${resp.content}
+ should be equal as strings ${json['status']} error
+
+Get IP Address with valid interface
+
+ [Documentation] This test case tries to get the ip addrees with the invalid
+ ... interface,Expectation is it should get error.
+ [Tags] network_test
+
+ @{arglist}= Create List eth0
+ ${args}= Create Dictionary data=@{arglist}
+ ${resp}= Call Method ${NW_MANAGER} GetAddress4 data=${args}
+ should be equal as strings ${resp.status_code} ${HTTP_OK}
+ ${json}= to json ${resp.content}
+ should be equal as strings ${json['status']} ok
+
+
+Set the IP address on invalid Interface lo01 1.1.1.1 255.255.255.0 1.1.1.1 error
+
+ [Tags] network_test
+ [Template] AddNetworkInfo
+ [Documentation] This test case tries to set the ip addrees with the invalid
+ ... interface,Expectation is it should get error
+
+Set invalid IP address on the valid interface eth0 ab.cd.ef.gh 255.255.255.0 1.1.1.1 error
+
+ [Tags] network_test
+ [Template] AddNetworkInfo
+ [Documentation] This test case tries to set the invalid ip addrees on the interface
+ ... Expectation is it should get error.
+
+
+Set IP address with invalid subnet mask eth0 2.2.2.2 av.ih.jk.lm 1.1.1.1 error
+
+ [Tags] network_test
+ [Template] AddNetworkInfo
+ [Documentation] This test case tries to set the ip addrees on the interface
+ ... with invalid subnet mask,Expectation is it should get error.
+
+Set empty IP address eth0 ${EMPTY} 255.255.255.0 1.1.1.1 error
+
+ [Tags] network_test
+ [Template] AddNetworkInfo
+ [Documentation] This test case tries to set the NULL ip addrees on the interface
+ ... Expectation is it should get error.
+
+Set empty subnet mask eth0 2.2.2.2 ${EMPTY} 1.1.1.1 error
+
+ [Tags] network_test
+ [Template] AddNetworkInfo
+ [Documentation] This test case tries to set the ip addrees on the interface
+ ... with empty subnet mask,Expectation is it should get error.
+
+Set empty gateway eth0 2.2.2.2 255.255.255.0 ${EMPTY} error
+
+ [Tags] network_test
+ [Template] AddNetworkInfo
+ [Documentation] This test case tries to set the ip addrees on the interface
+ ... with empty gateway,Expectation is it should get error.
+
+
+Get IP Address type
+ [Tags] GOOD-PATH
+ [Documentation] This test case tries to set existing ipaddress address and
+ ... later tries to verify that ip address type is set to static
+ ... due to the operation.
+
+ ${networkInfo}= Get networkInfo from the interface eth0
+ ${result}= convert to integer ${networkInfo['data'][1]}
+
+ ${CURRENT_MASK}= calcDottedNetmask ${result}
+ ${CURRENT_IP}= set variable ${networkInfo['data'][2]}
+ ${CURRENT_GATEWAY}= set variable ${networkInfo['data'][3]}
+
+ ${arglist}= Create List eth0 ${CURRENT_IP} ${CURRENT_MASK} ${CURRENT_GATEWAY}
+ ${args}= Create Dictionary data=@{arglist}
+ run keyword and ignore error Call Method ${NW_MANAGER} SetAddress4 data=${args}
+
+ Wait For Host To Ping ${CURRENT_IP}
+
+ Wait Until Keyword Succeeds 30 sec 5 sec Initialize OpenBMC
+
+ @{arglist}= Create List eth0
+ ${args}= Create Dictionary data=@{arglist}
+ ${resp}= Call Method ${NW_MANAGER} GetAddressType data=${args}
+ ${json}= to json ${resp.content}
+ Should Be Equal ${json['data']} STATIC
+ should be equal as strings ${json['status']} ok
+
+*** Keywords ***
+
+Get networkInfo from the interface
+
+ [Documentation] This keyword is used to match the given ip with the configured one.
+ ... returns true if match successfull else false
+ ... eg:- Outout of getAddress4
+ ... NewFormat:-{"data": [ 2,25,"9.3.164.147","9.3.164.129"],"message": "200 OK","status": "ok"}
+ ... OldFormat:-
+ ... {"data": [[[2,25,0,128,"9.3.164.177"],[2,8,254,128,"127.0.0.1"]],"9.3.164.129"],
+ ... "message": "200 OK", "status": "ok"}
+
+ [Arguments] ${intf}
+ @{arglist}= Create List ${intf}
+ ${args}= Create Dictionary data=@{arglist}
+ ${resp}= Call Method ${NW_MANAGER} GetAddress4 data=${args}
+ should be equal as strings ${resp.status_code} ${HTTP_OK}
+ ${json}= to json ${resp.content}
+ log to console ${json['data'][2]}
+ log to console ${json['data'][3]}
+ [Return] ${json}
+
+AddNetworkInfo
+ [Arguments] ${intf} ${address} ${mask} ${gateway} ${result}
+
+ ${arglist}= Create List ${intf} ${address} ${mask} ${gateway}
+ ${args}= Create Dictionary data=@{arglist}
+ ${resp}= Call Method ${NW_MANAGER} SetAddress4 data=${args}
+ should not be equal as strings ${resp.status_code} ${HTTP_OK}
+ ${json}= to json ${resp.content}
+ should be equal as strings ${json['status']} ${result}