mirror of
https://github.com/Telecominfraproject/oopt-tai-implementations.git
synced 2025-10-30 17:47:48 +00:00
mux: add tests for exec platform adapter
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
This commit is contained in:
1
tai_mux/.gitignore
vendored
1
tai_mux/.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
*.so
|
*.so
|
||||||
test/test
|
test/test
|
||||||
build
|
build
|
||||||
|
__pycache__
|
||||||
|
|||||||
Submodule tai_mux/oopt-tai updated: ba4b1ba6a6...3448aca2a1
@@ -6,9 +6,12 @@ ifndef TAI_LIB_DIR
|
|||||||
TAI_LIB_DIR := $(TAI_DIR)/tools/framework
|
TAI_LIB_DIR := $(TAI_DIR)/tools/framework
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: libtai.so static.json libtai-a.so libtai-b.so
|
all: exec-pa
|
||||||
TAI_MUX_STATIC_CONFIG_FILE=$(abspath static.json) TAI_TEST_TARGET=$(abspath libtai.so) $(MAKE) -C $(TAI_DIR)/tests
|
TAI_MUX_STATIC_CONFIG_FILE=$(abspath static.json) TAI_TEST_TARGET=$(abspath libtai.so) $(MAKE) -C $(TAI_DIR)/tests
|
||||||
|
|
||||||
|
exec-pa: libtai.so static.json libtai-a.so libtai-b.so
|
||||||
|
TAI_MUX_PLATFORM_ADAPTER="exec" TAI_MUX_EXEC_SCRIPT=$(abspath exec.py) LD_LIBRARY_PATH=. python -m unittest -vf
|
||||||
|
|
||||||
libtai.so:
|
libtai.so:
|
||||||
$(MAKE) -C ..
|
$(MAKE) -C ..
|
||||||
ln -sf ../$@ $@
|
ln -sf ../$@ $@
|
||||||
|
|||||||
23
tai_mux/tests/exec.py
Executable file
23
tai_mux/tests/exec.py
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
arg = sys.argv[1]
|
||||||
|
|
||||||
|
if arg == "list":
|
||||||
|
print("\n".join(str(v) for v in range(1, 8)))
|
||||||
|
return
|
||||||
|
|
||||||
|
time.sleep(.5)
|
||||||
|
|
||||||
|
print("libtai-a.so")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
56
tai_mux/tests/test.py
Normal file
56
tai_mux/tests/test.py
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import unittest
|
||||||
|
import subprocess as sp
|
||||||
|
import threading
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
import taish
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
TAI_TEST_MODULE_LOCATION = os.environ.get("TAI_TEST_MODULE_LOCATION", "")
|
||||||
|
if not TAI_TEST_MODULE_LOCATION:
|
||||||
|
TAI_TEST_MODULE_LOCATION = "0"
|
||||||
|
|
||||||
|
TAI_TEST_TAISH_SERVER_ADDRESS = os.environ.get("TAI_TEST_TAISH_SERVER_ADDRESS", "")
|
||||||
|
if not TAI_TEST_TAISH_SERVER_ADDRESS:
|
||||||
|
TAI_TEST_TAISH_SERVER_ADDRESS = taish.DEFAULT_SERVER_ADDRESS
|
||||||
|
|
||||||
|
TAI_TEST_TAISH_SERVER_PORT = os.environ.get("TAI_TEST_TAISH_SERVER_PORT", "")
|
||||||
|
if not TAI_TEST_TAISH_SERVER_PORT:
|
||||||
|
TAI_TEST_TAISH_SERVER_PORT = taish.DEFAULT_SERVER_PORT
|
||||||
|
|
||||||
|
TAI_TEST_NO_LOCAL_TAISH_SERVER = (
|
||||||
|
True if os.environ.get("TAI_TEST_NO_LOCAL_TAISH_SERVER", "") else False
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def output_reader(proc):
|
||||||
|
for line in iter(proc.stdout.readline, b""):
|
||||||
|
print("taish-server: {}".format(line.decode("utf-8")), end="")
|
||||||
|
|
||||||
|
|
||||||
|
class TestTAI(unittest.IsolatedAsyncioTestCase):
|
||||||
|
def setUp(self):
|
||||||
|
if TAI_TEST_NO_LOCAL_TAISH_SERVER:
|
||||||
|
return
|
||||||
|
proc = sp.Popen(["taish_server", "-v", "-n"], stderr=sp.STDOUT, stdout=sp.PIPE)
|
||||||
|
self.d = threading.Thread(target=output_reader, args=(proc,))
|
||||||
|
self.d.start()
|
||||||
|
self.proc = proc
|
||||||
|
time.sleep(1) # wait for the server to be ready
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
if TAI_TEST_NO_LOCAL_TAISH_SERVER:
|
||||||
|
return
|
||||||
|
self.proc.terminate()
|
||||||
|
self.proc.wait(timeout=0.2)
|
||||||
|
self.d.join()
|
||||||
|
self.proc.stdout.close()
|
||||||
|
|
||||||
|
async def test_create_and_remove(self):
|
||||||
|
cli = taish.AsyncClient(
|
||||||
|
TAI_TEST_TAISH_SERVER_ADDRESS, TAI_TEST_TAISH_SERVER_PORT
|
||||||
|
)
|
||||||
|
m = await cli.list()
|
||||||
|
v = await asyncio.gather(*(cli.create_module(k) for k in m.keys()))
|
||||||
|
await asyncio.gather(*(cli.remove(v.oid) for v in v))
|
||||||
|
cli.close()
|
||||||
Reference in New Issue
Block a user