summaryrefslogtreecommitdiffhomepage
path: root/ryu/tests/unit/lib/test_ip.py
diff options
context:
space:
mode:
Diffstat (limited to 'ryu/tests/unit/lib/test_ip.py')
-rw-r--r--ryu/tests/unit/lib/test_ip.py54
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)