api papi: add alias for timestamp(datetime)/timedelta

Now that we have support for f64:
- create explicit types for timestamp(datetime)/timedelta
- update log_details to use timestamp and remove redundant string representation.
  If you need the string representation, in python do str(timestamp).
  If you prefer the raw f64 value, the client can pass in the
  _no_type_conversion option.

Type: feature

Change-Id: I547b5fa7122d2afa12628b7db0192c23babbbae8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
This commit is contained in:
Paul Vinciguerra
2019-07-23 09:53:06 -04:00
committed by Andrew Yourtchenko
parent 07f87546c2
commit a47a5f20a3
5 changed files with 75 additions and 47 deletions

View File

@ -11,10 +11,13 @@
# 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"""
@ -22,25 +25,31 @@ class TestVpeApi(VppTestCase):
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]))
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)
# print('\n'.join([str(v) for v in rv]))
if enable_print:
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]))
if enable_print:
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)
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))