From e1887c1765ef57d50986701f7a4563f1ad7df340 Mon Sep 17 00:00:00 2001 From: Dave Wallace Date: Mon, 16 Nov 2020 18:03:53 -0500 Subject: tests: move vpp-api tests to src/vpe-api/test - Refactor make test code to be co-located with the vpp feature source code Type: test Signed-off-by: Dave Wallace Change-Id: Ic42bbd4e13606a5fdc91143ecc6452102ec337fe --- src/vpp-api/test/test_endian.py | 38 +++++++++++++++++++ src/vpp-api/test/test_vapi.py | 81 ++++++++++++++++++++++++++++++++++++++++ src/vpp-api/test/test_vpe_api.py | 55 +++++++++++++++++++++++++++ test/test_endian.py | 38 ------------------- test/test_vapi.py | 81 ---------------------------------------- test/test_vpe_api.py | 55 --------------------------- 6 files changed, 174 insertions(+), 174 deletions(-) create mode 100644 src/vpp-api/test/test_endian.py create mode 100644 src/vpp-api/test/test_vapi.py create mode 100644 src/vpp-api/test/test_vpe_api.py delete mode 100644 test/test_endian.py delete mode 100644 test/test_vapi.py delete mode 100644 test/test_vpe_api.py diff --git a/src/vpp-api/test/test_endian.py b/src/vpp-api/test/test_endian.py new file mode 100644 index 00000000000..462ee2b6b57 --- /dev/null +++ b/src/vpp-api/test/test_endian.py @@ -0,0 +1,38 @@ +# Copyright (c) 2019. Vinci Consulting Corp. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import framework +import vpp_papi_provider + +F64_ONE = 1.0 + + +class TestEndian(framework.VppTestCase): + """TestEndian""" + + def test_f64_endian_value(self): + try: + rv = self.vapi.get_f64_endian_value(f64_one=F64_ONE) + self.assertEqual(rv.f64_one_result, F64_ONE, + "client incorrectly deserializes f64 values. " + "Expected: %r. Received: %r." % ( + F64_ONE, rv.f64_one_result)) + except vpp_papi_provider.UnexpectedApiReturnValueError: + self.fail('client incorrectly serializes f64 values.') + + def test_get_f64_increment_by_one(self): + expected = 43.0 + rv = self.vapi.get_f64_increment_by_one(f64_value=42.0) + self.assertEqual(rv.f64_value, expected, 'Expected %r, received:%r.' + % (expected, rv.f64_value)) diff --git a/src/vpp-api/test/test_vapi.py b/src/vpp-api/test/test_vapi.py new file mode 100644 index 00000000000..1a4293d7888 --- /dev/null +++ b/src/vpp-api/test/test_vapi.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +""" VAPI test """ + +import unittest +import os +import signal +from framework import VppTestCase, running_on_centos, VppTestRunner, Worker + + +class VAPITestCase(VppTestCase): + """ VAPI test """ + + @classmethod + def setUpClass(cls): + super(VAPITestCase, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(VAPITestCase, cls).tearDownClass() + + def test_vapi_c(self): + """ run C VAPI tests """ + var = "TEST_BR" + built_root = os.getenv(var, None) + self.assertIsNotNone(built_root, + "Environment variable `%s' not set" % var) + executable = "%s/vapi_test/vapi_c_test" % built_root + worker = Worker( + [executable, "vapi client", self.shm_prefix], self.logger) + worker.start() + timeout = 60 + worker.join(timeout) + self.logger.info("Worker result is `%s'" % worker.result) + error = False + if worker.result is None: + try: + error = True + self.logger.error( + "Timeout! Worker did not finish in %ss" % timeout) + os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM) + worker.join() + except: + self.logger.debug("Couldn't kill worker-spawned process") + raise + if error: + raise Exception( + "Timeout! Worker did not finish in %ss" % timeout) + self.assert_equal(worker.result, 0, "Binary test return code") + + @unittest.skipIf(running_on_centos, "Centos's gcc can't compile our C++") + def test_vapi_cpp(self): + """ run C++ VAPI tests """ + var = "TEST_BR" + built_root = os.getenv(var, None) + self.assertIsNotNone(built_root, + "Environment variable `%s' not set" % var) + executable = "%s/vapi_test/vapi_cpp_test" % built_root + worker = Worker( + [executable, "vapi client", self.shm_prefix], self.logger) + worker.start() + timeout = 120 + worker.join(timeout) + self.logger.info("Worker result is `%s'" % worker.result) + error = False + if worker.result is None: + try: + error = True + self.logger.error( + "Timeout! Worker did not finish in %ss" % timeout) + os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM) + worker.join() + except: + raise Exception("Couldn't kill worker-spawned process") + if error: + raise Exception( + "Timeout! Worker did not finish in %ss" % timeout) + self.assert_equal(worker.result, 0, "Binary test return code") + + +if __name__ == '__main__': + unittest.main(testRunner=VppTestRunner) diff --git a/src/vpp-api/test/test_vpe_api.py b/src/vpp-api/test/test_vpe_api.py new file mode 100644 index 00000000000..54f7e41151b --- /dev/null +++ b/src/vpp-api/test/test_vpe_api.py @@ -0,0 +1,55 @@ +# Copyright (c) 2019. Vinci Consulting Corp. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import datetime +import time +import unittest +from framework import VppTestCase + +enable_print = False + + +class TestVpeApi(VppTestCase): + """TestVpeApi""" + + def test_log_dump_default(self): + rv = self.vapi.cli('test log notice fib entry this is a test') + rv = self.vapi.log_dump() + if enable_print: + print('\n'.join([str(v) for v in rv])) + self.assertTrue(rv) + + def test_log_dump_timestamp_0(self): + rv = self.vapi.cli('test log notice fib entry this is a test') + rv = self.vapi.log_dump(start_timestamp=0.0) + if enable_print: + print('\n'.join([str(v) for v in rv])) + self.assertTrue(rv) + + def test_log_dump_timestamp_future(self): + rv = self.vapi.cli('test log debug fib entry test') + rv = self.vapi.log_dump(start_timestamp=time.time() + 60.0) + if enable_print: + print('\n'.join([str(v) for v in rv])) + self.assertFalse(rv) + + def test_show_vpe_system_time(self): + local_start_time = datetime.datetime.now() + rv = self.vapi.show_vpe_system_time() + self.assertTrue(rv.vpe_system_time > local_start_time - + datetime.timedelta(hours=1.0), + 'system times differ by more than an hour.') + if enable_print: + print('\n'.join([str(v) for v in rv])) + print('%r %s' % (rv.vpe_system_time, + rv.vpe_system_time)) diff --git a/test/test_endian.py b/test/test_endian.py deleted file mode 100644 index 462ee2b6b57..00000000000 --- a/test/test_endian.py +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) 2019. Vinci Consulting Corp. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import framework -import vpp_papi_provider - -F64_ONE = 1.0 - - -class TestEndian(framework.VppTestCase): - """TestEndian""" - - def test_f64_endian_value(self): - try: - rv = self.vapi.get_f64_endian_value(f64_one=F64_ONE) - self.assertEqual(rv.f64_one_result, F64_ONE, - "client incorrectly deserializes f64 values. " - "Expected: %r. Received: %r." % ( - F64_ONE, rv.f64_one_result)) - except vpp_papi_provider.UnexpectedApiReturnValueError: - self.fail('client incorrectly serializes f64 values.') - - def test_get_f64_increment_by_one(self): - expected = 43.0 - rv = self.vapi.get_f64_increment_by_one(f64_value=42.0) - self.assertEqual(rv.f64_value, expected, 'Expected %r, received:%r.' - % (expected, rv.f64_value)) diff --git a/test/test_vapi.py b/test/test_vapi.py deleted file mode 100644 index 1a4293d7888..00000000000 --- a/test/test_vapi.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env python3 -""" VAPI test """ - -import unittest -import os -import signal -from framework import VppTestCase, running_on_centos, VppTestRunner, Worker - - -class VAPITestCase(VppTestCase): - """ VAPI test """ - - @classmethod - def setUpClass(cls): - super(VAPITestCase, cls).setUpClass() - - @classmethod - def tearDownClass(cls): - super(VAPITestCase, cls).tearDownClass() - - def test_vapi_c(self): - """ run C VAPI tests """ - var = "TEST_BR" - built_root = os.getenv(var, None) - self.assertIsNotNone(built_root, - "Environment variable `%s' not set" % var) - executable = "%s/vapi_test/vapi_c_test" % built_root - worker = Worker( - [executable, "vapi client", self.shm_prefix], self.logger) - worker.start() - timeout = 60 - worker.join(timeout) - self.logger.info("Worker result is `%s'" % worker.result) - error = False - if worker.result is None: - try: - error = True - self.logger.error( - "Timeout! Worker did not finish in %ss" % timeout) - os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM) - worker.join() - except: - self.logger.debug("Couldn't kill worker-spawned process") - raise - if error: - raise Exception( - "Timeout! Worker did not finish in %ss" % timeout) - self.assert_equal(worker.result, 0, "Binary test return code") - - @unittest.skipIf(running_on_centos, "Centos's gcc can't compile our C++") - def test_vapi_cpp(self): - """ run C++ VAPI tests """ - var = "TEST_BR" - built_root = os.getenv(var, None) - self.assertIsNotNone(built_root, - "Environment variable `%s' not set" % var) - executable = "%s/vapi_test/vapi_cpp_test" % built_root - worker = Worker( - [executable, "vapi client", self.shm_prefix], self.logger) - worker.start() - timeout = 120 - worker.join(timeout) - self.logger.info("Worker result is `%s'" % worker.result) - error = False - if worker.result is None: - try: - error = True - self.logger.error( - "Timeout! Worker did not finish in %ss" % timeout) - os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM) - worker.join() - except: - raise Exception("Couldn't kill worker-spawned process") - if error: - raise Exception( - "Timeout! Worker did not finish in %ss" % timeout) - self.assert_equal(worker.result, 0, "Binary test return code") - - -if __name__ == '__main__': - unittest.main(testRunner=VppTestRunner) diff --git a/test/test_vpe_api.py b/test/test_vpe_api.py deleted file mode 100644 index 54f7e41151b..00000000000 --- a/test/test_vpe_api.py +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright (c) 2019. Vinci Consulting Corp. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import datetime -import time -import unittest -from framework import VppTestCase - -enable_print = False - - -class TestVpeApi(VppTestCase): - """TestVpeApi""" - - def test_log_dump_default(self): - rv = self.vapi.cli('test log notice fib entry this is a test') - rv = self.vapi.log_dump() - if enable_print: - print('\n'.join([str(v) for v in rv])) - self.assertTrue(rv) - - def test_log_dump_timestamp_0(self): - rv = self.vapi.cli('test log notice fib entry this is a test') - rv = self.vapi.log_dump(start_timestamp=0.0) - if enable_print: - print('\n'.join([str(v) for v in rv])) - self.assertTrue(rv) - - def test_log_dump_timestamp_future(self): - rv = self.vapi.cli('test log debug fib entry test') - rv = self.vapi.log_dump(start_timestamp=time.time() + 60.0) - if enable_print: - print('\n'.join([str(v) for v in rv])) - self.assertFalse(rv) - - def test_show_vpe_system_time(self): - local_start_time = datetime.datetime.now() - rv = self.vapi.show_vpe_system_time() - self.assertTrue(rv.vpe_system_time > local_start_time - - datetime.timedelta(hours=1.0), - 'system times differ by more than an hour.') - if enable_print: - print('\n'.join([str(v) for v in rv])) - print('%r %s' % (rv.vpe_system_time, - rv.vpe_system_time)) -- cgit 1.2.3-korg