#!/usr/bin/env python from __future__ import print_function import unittest, sys, time, threading, struct import test_base import vpp_papi from ipaddress import * import glob, subprocess class TestPAPI(unittest.TestCase): @classmethod def setUpClass(cls): # # Start main VPP process cls.vpp_bin = glob.glob(test_base.scriptdir+'/../../../build-root/install-vpp*-native/vpp/bin/vpp')[0] print("VPP BIN:", cls.vpp_bin) cls.vpp = subprocess.Popen([cls.vpp_bin, "unix", "nodaemon"], stderr=subprocess.PIPE) print('Started VPP') # For some reason unless we let VPP start up the API cannot connect. time.sleep(0.3) @classmethod def tearDownClass(cls): cls.vpp.terminate() def setUp(self): print("Connecting API") r = vpp_papi.connect("test_papi") self.assertEqual(r, 0) def tearDown(self): r = vpp_papi.disconnect() self.assertEqual(r, 0) # # The tests themselves # # # Basic request / reply # def test_cli_request(self): print(vpp_papi.cli_exec('show version verbose')) #t = vpp_papi.cli_inband_request(len(cmd), cmd) #print('T:',t) #reply = t.reply[0].decode().rstrip('\x00') #print(reply) #program = t.program.decode().rstrip('\x00') #self.assertEqual('vpe', program) if __name__ == '__main__': unittest.main()