summaryrefslogtreecommitdiffstats
path: root/scripts/automation/regression/stateless_tests/trex_client_pkg_test.py
blob: 14ef36f7b2c599a5b00e155c4e043082509da2ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/router/bin/python
from .stl_general_test import CStlGeneral_Test, CTRexScenario
from misc_methods import run_command
from nose.plugins.attrib import attr

@attr('client_package')
class CTRexClientPKG_Test(CStlGeneral_Test):
    """This class tests TRex client package"""

    def setUp(self):
        CStlGeneral_Test.setUp(self)
        # examples connect by their own
        if CTRexScenario.stl_trex.is_connected():
            CTRexScenario.stl_trex.disconnect()
        CStlGeneral_Test.unzip_client_package()

    def tearDown(self):
        # connect back at end of tests
        if not CTRexScenario.stl_trex.is_connected():
            CTRexScenario.stl_trex.connect()
        CStlGeneral_Test.tearDown(self)

    def run_client_package_stl_example(self, python_version):
        commands = [
                    'cd %s' % CTRexScenario.scripts_path,
                    'source find_python.sh --%s' % python_version,
                    'which $PYTHON',
                    'cd trex_client/stl/examples',
                    '$PYTHON stl_imix.py -s %s' % self.configuration.trex['trex_name'],
                   ]
        return_code, stdout, stderr = run_command("bash -ce '%s'" % '; '.join(commands))
        if return_code:
            self.fail('Error in running stf_example using %s: %s' % (python_version, [return_code, stdout, stderr]))

    def test_client_python2(self):
        self.run_client_package_stl_example(python_version = 'python2')

    def test_client_python3(self):
        self.run_client_package_stl_example(python_version = 'python3')