summaryrefslogtreecommitdiff
path: root/test-cli/test/tests/qethernet.py
diff options
context:
space:
mode:
Diffstat (limited to 'test-cli/test/tests/qethernet.py')
-rw-r--r--test-cli/test/tests/qethernet.py78
1 files changed, 36 insertions, 42 deletions
diff --git a/test-cli/test/tests/qethernet.py b/test-cli/test/tests/qethernet.py
index 2ac447c..be984f5 100644
--- a/test-cli/test/tests/qethernet.py
+++ b/test-cli/test/tests/qethernet.py
@@ -1,57 +1,51 @@
-from test.helpers.syscmd import SysCommand
import unittest
-
+import sh
+import ex
class Qethernet(unittest.TestCase):
__sip = None
- __raw_out = None
- __MB_req = None
- __MB_real = None
- __BW_real = None
- __dat_list = None
+ __numbytestx = None
__bind = None
__OKBW = None
- def __init__(self, testname, testfunc, sip = None, OKBW=100, bind=None):
+ def __init__(self, testname, testfunc, varlist):
super(Qethernet, self).__init__(testfunc)
- if sip is not None:
- self.__sip = sip
- if sip is not None:
- self.__bind = bind
- self.__MB_req = '10'
- self.__OKBW=OKBW
+ if "sip" in varlist:
+ self.__sip = varlist["sip"]
+ else:
+ raise Exception('sip param inside Qethernet have been be defined')
+ if "bind" in varlist:
+ self.__bind = varlist["bind"]
+ else:
+ self.__bind = None
+ if "OKBW" in varlist:
+ self.__OKBW = varlist["OKBW"]
+ else:
+ raise Exception('OKBW param inside Qethernet must be defined')
+ self.__numbytestx = "10M"
self._testMethodDoc = testname
def execute(self):
- print
+ # execute iperf command against the server
if self.__bind is None:
- str_cmd = "iperf -c {} -x CMSV -n {}M".format(self.__sip, self.__MB_req)
+ p = sh.iperf("-c", self.__sip, "-x", "CMSV", "-n", self.__numbytestx, "-f", "m")
else:
- str_cmd = "iperf -c {} -x CMSV -n {}M -B {}".format(self.__sip, self.__MB_req, self.__bind)
- iperf_command = SysCommand("iperf", str_cmd)
- if iperf_command.execute() == 0:
- self.__raw_out = iperf_command.getOutput()
- if self.__raw_out == "":
- return -1
- lines = iperf_command.getOutput().splitlines()
- dat = lines[1]
- dat = dat.decode('ascii')
- dat_list = dat.split( )
- for d in dat_list:
- a = dat_list.pop(0)
- if a == "sec":
- break
- self.__MB_real = dat_list[0]
- self.__BW_real = dat_list[2]
- self.__dat_list = dat_list
- #print(self.__MB_real)
- #print(self.__BW_real)
- self.failUnless(float(self.__BW_real)>float(self.__OKBW)*0.9,"failed: speed is lower than spected. Speed(MB/s)" + str(self.__BW_real))
+ p = sh.iperf("-c", self.__sip, "-x", "CMSV", "-n", self.__numbytestx, "-f", "m", "-B", self.__bind)
+ #check if it was executed succesfully
+ if p.exit_code == 0:
+ if p.stdout == "":
+ self.fail("failed: error executing iperf command")
+ # analyze output string
+ # split by lines
+ lines = p.stdout.splitlines()
+ # get first line
+ dat = lines[1].decode('ascii')
+ # search for the BW value
+ a = re.search("\d+(\.\d)? Mbits/sec",dat)
+ b = a.group().split( )
+ BWreal = b[0]
+
+ # check if BW is in the expected range
+ self.failUnless(float(BWreal)>float(self.__OKBW)*0.9,"failed: speed is lower than spected. Speed(MB/s)" + str(BWreal))
else:
self.fail("failed: could not complete iperf command")
-
- def get_Total_MB(self):
- return self.__MB_real;
-
- def get_Total_BW(self):
- return self.__MB_real;