diff options
author | Pratikshya Prasai <pratikshyaprasai2112@gmail.com> | 2022-08-18 11:09:38 -0400 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2022-11-09 21:22:33 -0500 |
commit | 657bdf781ae876c945ca034e52cf25cccb09f71e (patch) | |
tree | 9ae70d0cb644ea9f609509ba4e83c84f687a264e /test/asf/test_cli.py | |
parent | 4dbd641136db81ba969a5a1c0374ec9c24525526 (diff) |
tests: initial asf framework refactoring for 'make test'
Type: refactor
Change-Id: I41455b759a5d302ad5c4247c13634c471e7d49a8
Signed-off-by: Pratikshya Prasai <pratikshyaprasai2112@gmail.com>
Signed-off-by: Saima Yunus <yunus.saima.234@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Diffstat (limited to 'test/asf/test_cli.py')
-rw-r--r-- | test/asf/test_cli.py | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/test/asf/test_cli.py b/test/asf/test_cli.py new file mode 100644 index 00000000000..808497f63d0 --- /dev/null +++ b/test/asf/test_cli.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +"""CLI functional tests""" + +import datetime +import time +import unittest + +from vpp_papi import VPPIOError + +from asfframework import VppTestCase, VppTestRunner + + +class TestCLI(VppTestCase): + """CLI Test Case""" + + maxDiff = None + + @classmethod + def setUpClass(cls): + # using the framework default + cls.vapi_response_timeout = 5 + super(TestCLI, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(TestCLI, cls).tearDownClass() + + def setUp(self): + super(TestCLI, self).setUp() + + def tearDown(self): + super(TestCLI, self).tearDown() + + def test_cli_retval(self): + """CLI inband retval""" + rv = self.vapi.papi.cli_inband(cmd="this command does not exist") + self.assertNotEqual(rv.retval, 0) + + rv = self.vapi.papi.cli_inband(cmd="show version") + self.assertEqual(rv.retval, 0) + + def test_long_cli_delay(self): + """Test that VppApiClient raises VppIOError if timeout.""" # noqa + with self.assertRaises(VPPIOError) as ctx: + rv = self.vapi.papi.cli_inband(cmd="wait 10") + + def test_long_cli_delay_override(self): + """Test per-command _timeout option.""" # noqa + rv = self.vapi.papi.cli_inband(cmd="wait 10", _timeout=15) + self.assertEqual(rv.retval, 0) + + +class TestCLIExtendedVapiTimeout(VppTestCase): + maxDiff = None + + @classmethod + def setUpClass(cls): + cls.vapi_response_timeout = 15 + cls.__doc__ = ( + " CLI Test Case w/ Extended (%ssec) Vapi Timeout " + % cls.vapi_response_timeout + ) + super(TestCLIExtendedVapiTimeout, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(TestCLIExtendedVapiTimeout, cls).tearDownClass() + + def setUp(self): + super(TestCLIExtendedVapiTimeout, self).setUp() + + def tearDown(self): + super(TestCLIExtendedVapiTimeout, self).tearDown() + + def test_long_cli_delay(self): + """Test that delayed result returns with extended timeout.""" + wait_secs = self.vapi_response_timeout - 1 + + # get vpp time as float + start = self.vapi.papi.show_vpe_system_time( + _no_type_conversion=True + ).vpe_system_time + rv = self.vapi.papi.cli_inband(cmd="wait %s" % wait_secs) + now = self.vapi.papi.show_vpe_system_time( + _no_type_conversion=True + ).vpe_system_time + + # assume that the overhead of the measurement is not more that .5 sec. + self.assertEqual(round(now - start), wait_secs) + + +if __name__ == "__main__": + unittest.main(testRunner=VppTestRunner) |