api: Implement log_dump/log_details
- Replaces the need to screen scrape "show log". - Adds an api to return the system time. When running over a socket, the api client may have different time than the vpp host. expected use: vpp_time_before_command = self.vapi.show_vpe_system_time_ticks().vpe_system_time_ticks <run some commands> log_output = self.vapi.log_dump(start_timestamp=vpp_time_before_command) Depends-on: https://gerrit.fd.io/r/20484 Depends-on: https://gerrit.fd.io/r/#/c/19581/ ============================================================================== TestVpeApi ============================================================================== log_details(_0=838, context=3, timestamp_ticks=2.4954863503546518e+48, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'vlib_physmem_shared_map_create: clib_mem_create_hugetlb_fd: open: No such file or directory\n\n') log_details(_0=838, context=3, timestamp_ticks=1.6101902879480125e+159, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'falling back to non-hugepage backed buffer pool') test_log_dump_default (test_vpe_api.TestVpeApi) OK log_details(_0=838, context=13, timestamp_ticks=2.4954863503546518e+48, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'vlib_physmem_shared_map_create: clib_mem_create_hugetlb_fd: open: No such file or directory\n\n') log_details(_0=838, context=13, timestamp_ticks=1.6101902879480125e+159, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'falling back to non-hugepage backed buffer pool') test_log_dump_timestamp_0 (test_vpe_api.TestVpeApi) OK test_log_dump_timestamp_future (test_vpe_api.TestVpeApi) SKIP test_show_vpe_system_time_ticks (test_vpe_api.TestVpeApi) SKIP ============================================================================== TEST RESULTS: Scheduled tests: 4 Executed tests: 4 Passed tests: 2 Skipped tests: 2 ============================================================================== Test run was successful Type: feature Change-Id: I893fc0a65f39749d2091093c2c604659aadd8447 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
This commit is contained in:

committed by
Neale Ranns

parent
1d6d9f021c
commit
03f1af23b9
46
test/test_vpe_api.py
Normal file
46
test/test_vpe_api.py
Normal file
@ -0,0 +1,46 @@
|
||||
# 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 time
|
||||
import unittest
|
||||
from framework import VppTestCase
|
||||
|
||||
|
||||
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()
|
||||
# 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)
|
||||
# print('\n'.join([str(v) for v in rv]))
|
||||
self.assertTrue(rv)
|
||||
|
||||
@unittest.skip('Requires https://gerrit.fd.io/r/#/c/19581/ '
|
||||
'to use timestamp_ticks.')
|
||||
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)
|
||||
# print('\n'.join([str(v) for v in rv]))
|
||||
self.assertFalse(rv)
|
||||
|
||||
@unittest.skip('Requires https://gerrit.fd.io/r/#/c/19581/ '
|
||||
'to use timestamp_ticks.')
|
||||
def test_show_vpe_system_time_ticks(self):
|
||||
rv = self.vapi.show_vpe_system_time_ticks()
|
||||
self.assertTrue(rv.vpe_system_time_ticks > 1.0)
|
Reference in New Issue
Block a user