2 from asfframework import VppAsfTestCase, VppTestRunner
7 class TestJsonApiTrace(VppAsfTestCase):
8 """JSON API trace related tests"""
12 super(TestJsonApiTrace, cls).setUpClass()
15 self.vapi.cli("api trace free")
16 self.vapi.cli("api trace on")
17 self.vapi.cli("api trace tx on")
20 def tearDownClass(cls):
21 super(TestJsonApiTrace, cls).tearDownClass()
23 def test_json_api_trace_save(self):
24 self.vapi.show_version()
26 fname = "test_api_trace-%d.json" % self.vpp.pid
27 tmp_api_trace = "/tmp/%s" % fname
28 fpath = "%s/%s" % (self.tempdir, fname)
29 self.vapi.cli("api trace save-json {}".format(fname))
30 shutil.move(tmp_api_trace, fpath)
31 with open(fpath, encoding="utf-8") as f:
36 if o["_msgname"] == "show_version":
39 self.assertTrue(found)
40 self.assertEquals(o["_msgname"], "show_version")
42 def test_json_api_trace_replay(self):
43 fname = "/tmp/create_loop.json"
47 "_msgname": "create_loopback",
49 "mac_address": "00:00:00:00:00:00"
52 with open(fname, "w") as f:
54 self.vapi.cli("api trace replay-json {}".format(fname))
55 r = self.vapi.sw_interface_dump(name_filter="loop", name_filter_valid=True)
56 self.assertEqual(len(r), 1)
57 self.assertEqual(r[0].interface_name, "loop0")
60 if __name__ == "__main__":
61 unittest.main(testRunner=VppTestRunner)