diff --git a/os_ken/lib/sockaddr.py b/os_ken/lib/sockaddr.py index 44371cfa..b0fa4d8b 100644 --- a/os_ken/lib/sockaddr.py +++ b/os_ken/lib/sockaddr.py @@ -54,7 +54,7 @@ def _hdr(ss_len, af): def _pad_to(data, total_len): pad_len = total_len - len(data) - return data + pad_len * '\0' + return data + pad_len * b'\0' def sa_in4(addr, port=0): diff --git a/os_ken/tests/unit/lib/__init__.py b/os_ken/tests/unit/lib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/os_ken/tests/unit/lib/test_sockaddr.py b/os_ken/tests/unit/lib/test_sockaddr.py new file mode 100644 index 00000000..33e5e626 --- /dev/null +++ b/os_ken/tests/unit/lib/test_sockaddr.py @@ -0,0 +1,54 @@ +# Copyright 2020 Red Hat, Inc. +# +# 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 unittest +import logging +import platform +from nose.tools import eq_ + +from os_ken.lib import sockaddr + +system = platform.system() + + +class Test_sockaddr(unittest.TestCase): + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_sockaddr_linux_sa_in4(self): + if system != 'Linux': + return + + addr = '127.0.0.1' + expected_result = (b'\x02\x00\x00\x00' + b'\x7f\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00') + eq_(expected_result, sockaddr.sa_in4(addr)) + + def test_sockaddr_linux_sa_in6(self): + if system != 'Linux': + return + + addr = 'dead:beef::1' + expected_result = (b'\n\x00\x00\x00\x00\x00\x00\x00\xde\xad\xbe\xef' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00') + eq_(expected_result, sockaddr.sa_in6(addr)) + + def test_sockaddr_sa_to_ss(self): + addr = b'\x01' + expected_result = b'\x01' + 127 * b'\x00' + eq_(expected_result, sockaddr.sa_to_ss(addr))