d135c19a1f
test can be run with: make test TEST=test_jvpp memory_shared.c: declaring and assigning variable in if statement makes it usage outside statement impossible. Looks like memory space assigned to variable declared in statement is freed when statement ends svm.c: - fixed case when root path can have a "/" at beggining - added option for test to operate over shared memory space with /vpe-api name and not create new one with name consisting of root path and region name which would require root permisions Change-Id: Iff1170dc6a5c1be134c152f2757c7ab9b919a8ed Signed-off-by: Matej Perina <mperina@cisco.com>
55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
import os
|
|
import subprocess
|
|
from vpp_papi_provider import VppPapiProvider
|
|
from threading import Timer
|
|
|
|
from framework import VppTestCase
|
|
|
|
# Api files path
|
|
API_FILES_PATH = "vpp/vpp-api/java"
|
|
|
|
# Registry jar file name prefix
|
|
REGISTRY_JAR_PREFIX = "jvpp-registry"
|
|
|
|
|
|
class TestJVppConnection(VppTestCase):
|
|
|
|
def full_jar_name(self, install_dir, jar_name, version):
|
|
return os.path.join(install_dir, API_FILES_PATH,
|
|
"{0}-{1}.jar".format(jar_name, version))
|
|
|
|
def jvpp_connection_test(self, api_jar_name, test_class_name, timeout):
|
|
install_dir = os.getenv('VPP_TEST_BUILD_DIR')
|
|
print("Install directory : {0}".format(install_dir))
|
|
|
|
version_reply = self.vapi.show_version()
|
|
version = version_reply.version.split("-")[0]
|
|
registry_jar_path = self.full_jar_name(install_dir,
|
|
REGISTRY_JAR_PREFIX, version)
|
|
print("JVpp Registry jar path : {0}".format(registry_jar_path))
|
|
|
|
api_jar_path = self.full_jar_name(install_dir, api_jar_name, version)
|
|
print("Api jar path : {0}".format(api_jar_path))
|
|
|
|
# passes shm prefix as parameter to create connection with same value
|
|
command = ["java", "-cp",
|
|
"{0}:{1}".format(registry_jar_path, api_jar_path),
|
|
test_class_name, "/{0}-vpe-api".format(self.shm_prefix)]
|
|
print("Test Command : {0}, Timeout : {1}".format(command, timeout))
|
|
|
|
self.process = subprocess.Popen(command, shell=False,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE, bufsize=1,
|
|
universal_newlines=True)
|
|
|
|
out, err = self.process.communicate()
|
|
print("Process output : {0}{1}".format(os.linesep, out))
|
|
print("Process error output : {0}{1}".format(os.linesep, err))
|
|
self.assert_equal(self.process.returncode, 0, "process return code")
|
|
|
|
def tearDown(self):
|
|
print("Tearing down jvpp test")
|
|
if self.process.poll() is None:
|
|
self.process.kill()
|