X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_interface_crud.py;h=f701e2735a672a851b59264099fa47eac17ca160;hb=c12eae73f;hp=b845c6b877e87e4e2a56230f8d36b0881b2c25a4;hpb=e63325e3ca03c847963863446345e6c80a2c0cfd;p=vpp.git diff --git a/test/test_interface_crud.py b/test/test_interface_crud.py index b845c6b877e..f701e2735a6 100644 --- a/test/test_interface_crud.py +++ b/test/test_interface_crud.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """CRUD tests of APIs (Create, Read, Update, Delete) HLD: - interface up/down/add/delete - interface type: @@ -36,6 +36,10 @@ class TestLoopbackInterfaceCRUD(VppTestCase): cls.tearDownClass() raise + @classmethod + def tearDownClass(cls): + super(TestLoopbackInterfaceCRUD, cls).tearDownClass() + @staticmethod def create_icmp_stream(src_if, dst_ifs): """ @@ -86,12 +90,17 @@ class TestLoopbackInterfaceCRUD(VppTestCase): i.admin_up() # read (check sw if dump, ip4 fib, ip6 fib) - if_dump = self.vapi.sw_interface_dump() - fib4_dump = self.vapi.ip_fib_dump() + if_dump = self.vapi.sw_interface_dump(name_filter_valid=True, + name_filter='loop') + fib4_dump = self.vapi.ip_route_dump(0) for i in loopbacks: self.assertTrue(i.is_interface_config_in_dump(if_dump)) self.assertTrue(i.is_ip4_entry_in_fib_dump(fib4_dump)) + if_dump = self.vapi.sw_interface_dump(name_filter_valid=True, + name_filter='loopXYZ') + self.assertEqual(len(if_dump), 0) + # check ping stream = self.create_icmp_stream(self.pg0, loopbacks) self.pg0.add_stream(stream) @@ -107,7 +116,7 @@ class TestLoopbackInterfaceCRUD(VppTestCase): # read (check not in sw if dump, ip4 fib, ip6 fib) if_dump = self.vapi.sw_interface_dump() - fib4_dump = self.vapi.ip_fib_dump() + fib4_dump = self.vapi.ip_route_dump(0) for i in loopbacks: self.assertFalse(i.is_interface_config_in_dump(if_dump)) self.assertFalse(i.is_ip4_entry_in_fib_dump(fib4_dump)) @@ -134,7 +143,7 @@ class TestLoopbackInterfaceCRUD(VppTestCase): # read (check not in sw if dump, ip4 fib, ip6 fib) if_dump = self.vapi.sw_interface_dump() - fib4_dump = self.vapi.ip_fib_dump() + fib4_dump = self.vapi.ip_route_dump(0) for i in loopbacks: self.assertTrue(i.is_interface_config_in_dump(if_dump)) self.assertFalse(i.is_ip4_entry_in_fib_dump(fib4_dump)) @@ -147,5 +156,38 @@ class TestLoopbackInterfaceCRUD(VppTestCase): self.pg0.assert_nothing_captured() +class TestInterfaceDumpApiLocalOnly(VppTestCase): + """test_interface_crud.TestInterfaceDumpApiLocalOnly""" + + def test_sw_if_index_0(self): + rv = self.vapi.sw_interface_dump(sw_if_index=0) + self.assertEqual(rv[0].sw_if_index, 0) + + def test_sw_if_index_twiddle0(self): + rv = self.vapi.sw_interface_dump(sw_if_index=0xffffffff) + self.assertEqual(rv[0].sw_if_index, 0) + + def test_sw_if_index_1_not_existing(self): + rv = self.vapi.sw_interface_dump(sw_if_index=1) + self.assertEqual(len(rv), 0, 'expected no records.') + + +class TestInterfaceDumpApi(VppTestCase): + """test_interface_crud.TestInterfaceDumpApi""" + + def test_sw_if_index_1(self): + self.vapi.create_loopback_instance(is_specified=1, + user_instance=10) + self.vapi.create_loopback_instance(is_specified=1, + user_instance=5) + + # Can I get back the specified record? + rv = self.vapi.sw_interface_dump(sw_if_index=1) + self.assertEqual(rv[0].sw_if_index, 1, rv) + + # verify 3 interfaces + rv = self.vapi.sw_interface_dump(sw_if_index=0xffffffff) + self.assertEqual(len(rv), 3, 'Expected 3 interfaces.') + if __name__ == '__main__': unittest.main(testRunner=VppTestRunner)