iproute/tests/ip-route-sanity-test/ip-route-tests.py

111 lines
3.6 KiB
Python
Raw Normal View History

CI: Add ip route to test Sample run ''' :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Test :: Test :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: [ 18:23:29 ] :: [ LOG ] :: ip route tests :: [ 18:23:29 ] :: [ LOG ] :: ip route tests :: [ 18:23:29 ] :: [ BEGIN ] :: Running '/usr/bin/python3 /usr/bin/ip-route-tests.py' test_add_blackhole (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600 10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50 10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50 blackhole 192.168.1.0/24 192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600 192.168.225.1 dev wlp4s0 proto static scope link metric 600 209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600 192.168.225.1 dev wlp4s0 proto static scope link metric 600 209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600 ok test_add_prohibit (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600 10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50 10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50 prohibit 192.168.1.0/24 192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600 192.168.225.1 dev wlp4s0 proto static scope link metric 600 209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600 ok test_add_route (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600 10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50 10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50 192.168.1.0/24 dev dummy-test scope link 192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600 192.168.225.1 dev wlp4s0 proto static scope link metric 600 209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600 ok test_add_route_table (__main__.IPRouteTests) ... 192.168.1.0/24 dev dummy-test scope link ok test_add_throw (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600 10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50 10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50 throw 192.168.1.0/24 192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600 192.168.225.1 dev wlp4s0 proto static scope link metric 600 209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600 ok test_add_unreachable (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600 10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50 10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50 unreachable 192.168.1.0/24 192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600 192.168.225.1 dev wlp4s0 proto static scope link metric 600 209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600 ok ---------------------------------------------------------------------- Ran 6 tests in 0.155s OK :: [ 18:23:29 ] :: [ PASS ] :: Command '/usr/bin/python3 /usr/bin/ip-route-tests.py' (Expected 0, got 0) :: [ 18:23:29 ] :: [ PASS ] :: Command '/usr/bin/python3 /usr/bin/ip-route-tests.py' (Expected 0, got 0) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Duration: 1s :: Duration: 1s :: Assertions: 1 good, 0 bad :: Assertions: 1 good, 0 bad :: RESULT: PASS :: RESULT: PASS :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Cleanup :: Cleanup :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '''
2018-07-31 12:52:25 +00:00
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-route-sanity-test
# Description: Test basic ip route funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_dummy(self):
""" Setup """
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'up'])
def del_dummy(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
class IPRouteTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_dummy()
def tearDown(self):
self.del_dummy()
def test_add_route(self):
subprocess.check_output(['ip', 'route', 'add', '192.168.1.0/24', 'dev', 'dummy-test'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "192.168.1.0/24 dev dummy-test scope link")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24', 'dev', 'dummy-test'])
def test_add_route_table(self):
subprocess.check_output(['ip', 'route', 'add', 'table', '555', '192.168.1.0/24', 'dev', 'dummy-test'])
output=subprocess.check_output(['ip', 'route', 'show', 'table', '555']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "192.168.1.0/24 dev dummy-test scope link")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24', 'dev', 'dummy-test', 'table', '555'])
def test_add_blackhole(self):
subprocess.check_output(['ip', 'route', 'add', 'blackhole', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "blackhole 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
def test_add_unreachable(self):
subprocess.check_output(['ip', 'route', 'add', 'unreachable', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "unreachable 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
def test_add_prohibit(self):
subprocess.check_output(['ip', 'route', 'add', 'prohibit', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "prohibit 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
def test_add_throw(self):
subprocess.check_output(['ip', 'route', 'add', 'throw', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "throw 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))