diff options
author | Jakub Grajciar <jgrajcia@cisco.com> | 2019-09-03 10:40:01 +0200 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2019-12-11 09:39:42 +0000 |
commit | 5de4fb7076a46ab75e2d3c30079dd6639af16a86 (patch) | |
tree | 3ac12410c3d0769f5d950df53d6abb43fe54e5b9 /test | |
parent | 8dc75c0cc3ac0db13778a0a32f9aa81597b80556 (diff) |
devices: tap API cleanup
Use consistent API types.
Type: fix
Change-Id: I11cc7f6347b7a60e5fd41e54f0c7994e2d81199f
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/test_tap.py | 24 | ||||
-rw-r--r-- | test/vpp_devices.py | 41 |
2 files changed, 65 insertions, 0 deletions
diff --git a/test/test_tap.py b/test/test_tap.py new file mode 100644 index 00000000000..92589789a95 --- /dev/null +++ b/test/test_tap.py @@ -0,0 +1,24 @@ +import unittest +import os + +from framework import VppTestCase, VppTestRunner +from vpp_devices import VppTAPInterface + + +def check_tuntap_driver_access(): + return os.access("/dev/net/tun", os.R_OK or os.W_OK) + + +@unittest.skipUnless(check_tuntap_driver_access(), "Permission denied") +class TestTAP(VppTestCase): + """ TAP Test Case """ + + def test_tap_add_del(self): + """Create TAP interface""" + tap0 = VppTAPInterface(self, tap_id=0) + tap0.add_vpp_config() + self.assertTrue(tap0.query_vpp_config()) + + +if __name__ == '__main__': + unittest.main(testRunner=VppTestRunner) diff --git a/test/vpp_devices.py b/test/vpp_devices.py new file mode 100644 index 00000000000..7e18eca65a9 --- /dev/null +++ b/test/vpp_devices.py @@ -0,0 +1,41 @@ +from vpp_interface import VppInterface + + +class VppTAPInterface(VppInterface): + + @property + def tap_id(self): + """TAP id""" + return self._tap_id + + def __init__(self, test, tap_id=0xffffffff, mac_addr=None): + self._test = test + self._tap_id = tap_id + self._mac_addr = mac_addr + + def get_vpp_dump(self): + dump = self._test.vapi.sw_interface_tap_v2_dump() + for entry in dump: + if entry.sw_if_index == self.sw_if_index: + return entry + + def add_vpp_config(self): + use_random_mac = True if self._mac_addr else False + reply = self._test.vapi.tap_create_v2( + id=self._tap_id, + use_random_mac=use_random_mac, + mac_address=self._mac_addr) + self.set_sw_if_index(reply.sw_if_index) + self._test.registry.register(self, self.test.logger) + + def remove_vpp_config(self): + self._test.vapi.tap_delete_v2(sw_if_index=self.sw_if_index) + + def query_vpp_config(self): + dump = self.get_vpp_dump() + if dump: + return True + return False + + def object_id(self): + return "tap-%s" % self._tap_id |