888640a398
clib_net_to_host_f64, clib_host_to_net_f64 are now implemented as '=', https://gerrit.fd.io/r/#/c/20406/ set papi to match. - all f64 api references are now wrapped with clib_net_to_host_f64 or clib_host_to_net_f64. IEEE f64 endianess is not defined. If clib_net_to_host_f64 and clib_host_to_net_f64 are later defined in VPP as big-endian, it is a single character change in the papi vpp_serializer. Note: This breaks the api in a manner that would not be detected by the flag day initiative. The scope is small. This only impacts map.api, which applied the u64 transformation, while the gbp api uses '='. The implementation of "=" raises issues for the papi socket implementation if used between systems of differing endianess. See Vratko's comments. - Added get_f64_endian_value() to api to allow client to verify endianess of f64's. Type: fix Depends-on: https://gerrit.fd.io/r/#/c/20484/ Change-Id: I00fc64a6557ba0190398df211aa0ea5c7eb101df Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
# 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))
|