diff options
Diffstat (limited to 'ryu/tests/unit/lib/test_ip.py')
-rw-r--r-- | ryu/tests/unit/lib/test_ip.py | 54 |
1 files changed, 48 insertions, 6 deletions
diff --git a/ryu/tests/unit/lib/test_ip.py b/ryu/tests/unit/lib/test_ip.py index 3fb78119..66d8f0c2 100644 --- a/ryu/tests/unit/lib/test_ip.py +++ b/ryu/tests/unit/lib/test_ip.py @@ -15,10 +15,12 @@ from __future__ import print_function -import unittest import logging import struct -from nose.tools import * +import unittest + +from nose.tools import eq_ +from nose.tools import raises from ryu.lib import ip @@ -78,13 +80,33 @@ class Test_ip(unittest.TestCase): res = ip.ipv6_to_bin(ipv6_str) eq_(val, res) - def test_ipv6_to_str(self): + def test_ipv6_to_int(self): + ipv6_str = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c' + val = 0x20130da8021508f2aa2066fffe4c9c3c + + res = ip.ipv6_to_int(ipv6_str) + eq_(val, res) + + def test_ipv6_to_int_with_shortcut(self): + ipv6_str = '3f:10::1:2' + val = 0x003f0010000000000000000000010002 + + res = ip.ipv6_to_int(ipv6_str) + eq_(val, res) + + def test_ipv6_to_str_from_bin(self): ipv6_bin = struct.pack('!8H', 0x2013, 0xda8, 0x215, 0x8f2, 0xaa20, 0x66ff, 0xfe4c, 0x9c3c) val = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c' res = ip.ipv6_to_str(ipv6_bin) - print('%s %s' % (val, res)) + eq_(val, res) + + def test_ipv6_to_str_from_int(self): + ipv6_int = 0x20130da8021508f2aa2066fffe4c9c3c + val = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c' + + res = ip.ipv6_to_str(ipv6_int) eq_(val, res) def test_text_to_bin_from_ipv4_text(self): @@ -100,15 +122,35 @@ class Test_ip(unittest.TestCase): res = ip.text_to_bin(ipv6_str) eq_(val, res) - def test_bin_to_text_from_ipv4_text(self): + def test_text_to_int_from_ipv4_text(self): + ipv4_str = '10.28.197.1' # 0a.1c.c5.01 + val = 0x0a1cc501 + + res = ip.text_to_int(ipv4_str) + eq_(val, res) + + def test_text_to_int_from_ipv6_text(self): + ipv6_str = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c' + val = 0x20130da8021508f2aa2066fffe4c9c3c + + res = ip.text_to_int(ipv6_str) + eq_(val, res) + + def test_bin_to_text_from_ipv4_bin(self): ipv4_bin = struct.pack('!4B', 10, 28, 197, 1) val = '10.28.197.1' res = ip.bin_to_text(ipv4_bin) eq_(val, res) - def test_bin_to_text_from_ipv6_text(self): + def test_bin_to_text_from_ipv6_bin(self): ipv6_bin = struct.pack('!8H', 0x2013, 0xda8, 0x215, 0x8f2, 0xaa20, 0x66ff, 0xfe4c, 0x9c3c) val = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c' res = ip.bin_to_text(ipv6_bin) eq_(val, res) + + @raises(struct.error) + def test_bin_to_text_with_invalid_bin(self): + invalid_bin = b'invalid' + + ip.bin_to_text(invalid_bin) |