Commit 6dae3045 authored by Martín Ferrari's avatar Martín Ferrari

Improve tests

parent 6cfa840c
...@@ -26,7 +26,6 @@ class Node(object): ...@@ -26,7 +26,6 @@ class Node(object):
Node._nextnode += 1 Node._nextnode += 1
def __del__(self): def __del__(self):
print "__del__(%s)" % self
self.shutdown() self.shutdown()
def shutdown(self): def shutdown(self):
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
# vim:ts=4:sw=4:et:ai:sts=4 # vim:ts=4:sw=4:et:ai:sts=4
from test_util import get_devs, get_devs_netns from test_util import get_devs, get_devs_netns
import netns import netns, test_util
import os import os
import unittest import unittest
class TestInterfaces(unittest.TestCase): class TestInterfaces(unittest.TestCase):
def test_util(self): def test_utils(self):
devs = get_devs() devs = get_devs()
# There should be at least loopback! # There should be at least loopback!
self.assertTrue(len(devs) > 0) self.assertTrue(len(devs) > 0)
...@@ -19,6 +19,7 @@ class TestInterfaces(unittest.TestCase): ...@@ -19,6 +19,7 @@ class TestInterfaces(unittest.TestCase):
'bcast': None, 'family': 'inet' 'bcast': None, 'family': 'inet'
} in devs['lo']['addr']) } in devs['lo']['addr'])
@test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
def test_interface_creation(self): def test_interface_creation(self):
node0 = netns.Node() node0 = netns.Node()
ifaces = [] ifaces = []
...@@ -36,6 +37,7 @@ class TestInterfaces(unittest.TestCase): ...@@ -36,6 +37,7 @@ class TestInterfaces(unittest.TestCase):
self.assertEquals(set(ifaces), node0.get_interfaces()) self.assertEquals(set(ifaces), node0.get_interfaces())
@test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
def test_interface_settings(self): def test_interface_settings(self):
node0 = netns.Node() node0 = netns.Node()
if0 = node0.add_if(mac_address = '42:71:e0:90:ca:42', mtu = 1492) if0 = node0.add_if(mac_address = '42:71:e0:90:ca:42', mtu = 1492)
...@@ -67,6 +69,7 @@ class TestInterfaces(unittest.TestCase): ...@@ -67,6 +69,7 @@ class TestInterfaces(unittest.TestCase):
# FIXME: get_stats # FIXME: get_stats
@test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
def test_interface_migration(self): def test_interface_migration(self):
node0 = netns.Node() node0 = netns.Node()
dummyname = "dummy%d" % os.getpid() dummyname = "dummy%d" % os.getpid()
...@@ -84,6 +87,7 @@ class TestInterfaces(unittest.TestCase): ...@@ -84,6 +87,7 @@ class TestInterfaces(unittest.TestCase):
self.assertEquals(devs[if0.name]['lladdr'], if0.mac_address) self.assertEquals(devs[if0.name]['lladdr'], if0.mac_address)
self.assertEquals(devs[if0.name]['mtu'], if0.mtu) self.assertEquals(devs[if0.name]['mtu'], if0.mtu)
@test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
def test_interface_addresses(self): def test_interface_addresses(self):
node0 = netns.Node() node0 = netns.Node()
if0 = node0.add_if() if0 = node0.add_if()
......
#!/usr/bin/env python #!/usr/bin/env python
# vim:ts=4:sw=4:et:ai:sts=4 # vim:ts=4:sw=4:et:ai:sts=4
import netns import netns, test_util
import os import os, signal, subprocess, sys, time
import signal
import subprocess
import sys
import time
import unittest import unittest
class TestNode(unittest.TestCase): class TestNode(unittest.TestCase):
# def setUp(self): # def setUp(self):
# pass # pass
@test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
def test_node(self): def test_node(self):
node = netns.Node() node = netns.Node()
self.failIfEqual(node.pid, os.getpid()) self.failIfEqual(node.pid, os.getpid())
...@@ -20,20 +17,18 @@ class TestNode(unittest.TestCase): ...@@ -20,20 +17,18 @@ class TestNode(unittest.TestCase):
os.kill(node.pid, 0) os.kill(node.pid, 0)
nodes = netns.get_nodes() nodes = netns.get_nodes()
self.assertEquals(nodes, set([node])) self.assertEquals(nodes, [node])
# Test that netns recognises a fork # Test that netns recognises a fork
chld = os.fork() chld = os.fork()
if chld == 0: if chld == 0:
if len(netns.get_nodes()) == 0: if len(netns.get_nodes()) == 0:
sys.exit(0) os._exit(0)
sys.exit(1) os._exit(1)
(pid, exitcode) = os.waitpid(chld, 0) (pid, exitcode) = os.waitpid(chld, 0)
self.assertEquals(exitcode, 0) self.assertEquals(exitcode, 0, "Node does not recognise forks")
def test_routing(self):
node = netns.Node()
@test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
def test_cleanup(self): def test_cleanup(self):
def create_stuff(): def create_stuff():
a = netns.Node() a = netns.Node()
...@@ -53,7 +48,7 @@ class TestNode(unittest.TestCase): ...@@ -53,7 +48,7 @@ class TestNode(unittest.TestCase):
# Test automatic destruction # Test automatic destruction
orig_devs = len(get_devs()) orig_devs = len(get_devs())
create_stuff() create_stuff()
self.assertEquals(netns.get_nodes(), set()) self.assertEquals(netns.get_nodes(), [])
self.assertEquals(orig_devs, len(get_devs())) self.assertEquals(orig_devs, len(get_devs()))
# Test at_exit hooks # Test at_exit hooks
......
#!/usr/bin/env python #!/usr/bin/env python
# vim:ts=4:sw=4:et:ai:sts=4 # vim:ts=4:sw=4:et:ai:sts=4
import netns import netns, test_util
import unittest import os, unittest
class TestRouting(unittest.TestCase): class TestRouting(unittest.TestCase):
@test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
def test_routing(self): def test_routing(self):
node = netns.Node() node = netns.Node()
if0 = node.add_if() if0 = node.add_if()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment