7 from config import config
8 from framework import VppTestCase, VppTestRunner
9 from vpp_ip_route import VppIpTable, VppIpRoute, VppRoutePath
12 @unittest.skipUnless(config.gcov, "part of code coverage tests")
13 class TestVlib(VppTestCase):
14 """ Vlib Unit Test Cases """
19 super(TestVlib, cls).setUpClass()
22 def tearDownClass(cls):
23 super(TestVlib, cls).tearDownClass()
26 super(TestVlib, self).setUp()
29 super(TestVlib, self).tearDown()
31 def test_vlib_main_unittest(self):
32 """ Vlib main.c Code Coverage Test """
34 cmds = ["loopback create",
35 "packet-generator new {\n"
40 " node ethernet-input\n"
42 " IP6: 00:d0:2d:5e:86:85 -> 00:0d:ea:d0:00:00\n"
43 " ICMP: db00::1 -> db00::2\n"
47 "event-logger trace dispatch",
50 "event-logger resize 102400",
51 "event-logger restart",
52 "pcap dispatch trace on max 100 buffer-trace pg-input 15",
54 "show event-log 100 all",
57 "pcap dispatch trace",
58 "pcap dispatch trace status",
59 "pcap dispatch trace off",
60 "show vlib frame-allocation",
64 r = self.vapi.cli_return_response(cmd)
66 if hasattr(r, 'reply'):
67 self.logger.info(cmd + " FAIL reply " + r.reply)
69 self.logger.info(cmd + " FAIL retval " + str(r.retval))
71 def test_vlib_node_cli_unittest(self):
72 """ Vlib node_cli.c Code Coverage Test """
74 cmds = ["loopback create",
75 "packet-generator new {\n"
80 " node ethernet-input\n"
82 " IP6: 00:d0:2d:5e:86:85 -> 00:0d:ea:d0:00:00\n"
83 " ICMP: db00::1 -> db00::2\n"
88 "show vlib graph ethernet-input",
90 "show vlib graphviz graphviz.dot",
92 "show runtime ethernet-input",
93 "show runtime brief verbose max summary",
96 "show node ethernet-input",
99 "set node function no-such-node",
100 "set node function cdp-input default",
101 "set node function ethernet-input default",
102 "set node function ethernet-input bozo",
103 "set node function ethernet-input",
108 r = self.vapi.cli_return_response(cmd)
110 if hasattr(r, 'reply'):
111 self.logger.info(cmd + " FAIL reply " + r.reply)
113 self.logger.info(cmd + " FAIL retval " + str(r.retval))
115 def test_vlib_buffer_c_unittest(self):
116 """ Vlib buffer.c Code Coverage Test """
118 cmds = ["loopback create",
119 "packet-generator new {\n"
124 " node ethernet-input\n"
126 " IP6: 00:d0:2d:5e:86:85 -> 00:0d:ea:d0:00:00\n"
127 " ICMP: db00::1 -> db00::2\n"
131 "event-logger trace",
132 "event-logger trace enable",
133 "event-logger trace api cli barrier",
135 "show interface bogus",
136 "event-logger trace disable api cli barrier",
137 "event-logger trace circuit-node ethernet-input",
138 "event-logger trace circuit-node ethernet-input disable",
142 "show memory api-segment stats-segment main-heap verbose",
143 "leak-check { show memory }",
145 "memory-trace main-heap",
146 "memory-trace main-heap api-segment stats-segment",
147 "leak-check { show version }",
149 "comment { show version }",
150 "uncomment { show version }",
151 "show memory main-heap",
154 "test heap-validate",
155 "memory-trace main-heap disable",
163 r = self.vapi.cli_return_response(cmd)
165 if hasattr(r, 'reply'):
166 self.logger.info(cmd + " FAIL reply " + r.reply)
168 self.logger.info(cmd + " FAIL retval " + str(r.retval))
170 def test_vlib_format_unittest(self):
171 """ Vlib format.c Code Coverage Test """
173 cmds = ["loopback create",
174 "classify filter pcap mask l2 proto match l2 proto 0x86dd",
175 "classify filter pcap del",
180 r = self.vapi.cli_return_response(cmd)
182 if hasattr(r, 'reply'):
183 self.logger.info(cmd + " FAIL reply " + r.reply)
185 self.logger.info(cmd + " FAIL retval " + str(r.retval))
187 def test_vlib_main_unittest(self):
188 """ Private Binary API Segment Test (takes 70 seconds) """
190 vat_path = config.vpp + '_api_test'
191 vat = pexpect.spawn(vat_path, ['socket-name',
192 self.get_api_sock_path()])
193 vat.expect("vat# ", timeout=10)
194 vat.sendline('sock_init_shm')
195 vat.expect("vat# ", timeout=10)
196 vat.sendline('sh api cli')
197 vat.kill(signal.SIGKILL)
199 self.logger.info("vat terminated, 70 second wait for the Reaper")
201 self.logger.info("Reaper should be complete...")
204 """ Fixed-size Pool Test """
210 r = self.vapi.cli_return_response(cmd)
212 if hasattr(r, 'reply'):
213 self.logger.info(cmd + " FAIL reply " + r.reply)
215 self.logger.info(cmd + " FAIL retval " + str(r.retval))
217 if __name__ == '__main__':
218 unittest.main(testRunner=VppTestRunner)