From 2e9c5e6c52bb617c125dd20e39ab095a731e22d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Wed, 31 Dec 2025 13:38:19 +0100 Subject: [PATCH] added debug features to the lua and python jrpc servers. Added doc of lua func item --- .../test_items/items_common_attributes.rst | 2 +- .../source/test_items/lua_func_test_item.rst | 65 ++++++++++++++++++ .../source/test_items/py_func_test_item.rst | 6 +- doc/manual/sphinx/source/tum_syntax.rst | 4 +- doc/manual/testium_manual.pdf | Bin 661321 -> 665429 bytes .../interpreter/test_items/test_item_check.py | 2 +- .../test_items/test_item_lua_func.py | 3 +- .../test_items/test_item_py_func.py | 2 +- src/testium/interpreter/utils/jrpc.py | 21 +++--- .../interpreter/utils/lua_func_exec.py | 9 ++- src/testium/interpreter/utils/py_func_exec.py | 8 ++- src/testium/lua_func/handle.lua | 5 +- src/testium/lua_func/json-rpc.lua | 38 ++++------ src/testium/lua_func/main.lua | 2 +- src/testium/py_func/__init__.py | 10 ++- src/testium/py_func/func_call.py | 2 +- src/testium/py_func/tm.py | 4 +- 17 files changed, 129 insertions(+), 54 deletions(-) create mode 100644 doc/manual/sphinx/source/test_items/lua_func_test_item.rst diff --git a/doc/manual/sphinx/source/test_items/items_common_attributes.rst b/doc/manual/sphinx/source/test_items/items_common_attributes.rst index fa16c54..6ad9137 100644 --- a/doc/manual/sphinx/source/test_items/items_common_attributes.rst +++ b/doc/manual/sphinx/source/test_items/items_common_attributes.rst @@ -166,7 +166,7 @@ The test items returning a value are: * :ref:`dialog_value test items` -* :ref:`py_func test item` +* :ref:`py_func test item` * :ref:`dialog_choices test item` diff --git a/doc/manual/sphinx/source/test_items/lua_func_test_item.rst b/doc/manual/sphinx/source/test_items/lua_func_test_item.rst new file mode 100644 index 0000000..2ccd022 --- /dev/null +++ b/doc/manual/sphinx/source/test_items/lua_func_test_item.rst @@ -0,0 +1,65 @@ +.. _sec_lua_func_item: + +**lua_func** test item +============================================================ + +The ``lua_func`` test item is used to execute custom lua 5.4 scripts with the given +input parameters. + +The ``lua_func`` test item is of the form: + +.. code-block:: lua + :caption: ``lua_func`` python function example + :name: script_file.lua + + local module = {} + + function module.dummy_func(param1, param2, param4, param4): + ... + return 10 + + return module + +.. code-block:: yaml + :caption: corresponding ``lua_func`` tum extract + + - lua_func: + name: lua function test item + file: script_file.lua + func_name: dummy_func + param: + - 123 + - 0.123 + - True + - $(global_dict_key) + expected_result: 10 + +**Attributes** + +Beside common test items attributes, lua_func item has specific attribute, some of which being mandatory. + +* ``file``: the script file name that contains the function to be executed. + Only python script format is supported. +* ``func_name``: The function name to be executed. +* ``param``: This is a list of parameters that are passed to the function + in the order they are presented in the script. These parameters are not + mandatory and are highly dependent of the function prototype. + +.. code-block:: yaml + :caption: ``lua_func`` test item example of usage + + - lua_func: + name: activity + file: script_name.lua + func_name: methodName + param: + - $(my_param) + +The result of the function (after eventual post treatment) is stored in the global +variable named ``pfn_`` +(See :ref:`global variables` for more detail +on how to access to global variables from test items and scripts). + +In the example above, the global variable ``$(lfn_activity)`` +would be created at the end of the item execution. It would contain the resulting +value of the funcToBeExecuted python function. \ No newline at end of file diff --git a/doc/manual/sphinx/source/test_items/py_func_test_item.rst b/doc/manual/sphinx/source/test_items/py_func_test_item.rst index 619fd78..cf6d178 100644 --- a/doc/manual/sphinx/source/test_items/py_func_test_item.rst +++ b/doc/manual/sphinx/source/test_items/py_func_test_item.rst @@ -1,4 +1,4 @@ -.. _sec_func_item: +.. _sec_py_func_item: **py_func** test item ============================================================ @@ -99,10 +99,10 @@ Beside common test items attributes, py_func item has specific attribute, some o - $(my_param) The result of the function (after eventual post treatment) is stored in the global -variable named ``fn_`` +variable named ``pfn_`` (See :ref:`global variables` for more detail on how to access to global variables from test items and scripts). -In the example above, the global variable ``$(fn_function test item)`` +In the example above, the global variable ``$(pfn_function test item)`` would be created at the end of the item execution. It would contain the resulting value of the funcToBeExecuted python function. \ No newline at end of file diff --git a/doc/manual/sphinx/source/tum_syntax.rst b/doc/manual/sphinx/source/tum_syntax.rst index 046f1a0..335f984 100644 --- a/doc/manual/sphinx/source/tum_syntax.rst +++ b/doc/manual/sphinx/source/tum_syntax.rst @@ -142,7 +142,8 @@ library API (see :ref:`helper library`) * ``ts_end_``: timestamp at the end of test item execution (see :ref:`sec_item_common`), * ``ts_duration_``: duration of test item execution in seconds (see :ref:`sec_item_common`), * ``cn_``: console test item result (see section :ref:`sec_console_test_item`), -* ``fn_``: py_func test item result (see section :ref:`sec_func_item`), +* ``pfn_``: py_func test item result (see section :ref:`sec_py_func_item`), +* ``lfn_``: lua_func test item result (see section :ref:`sec_lua_func_item`), * ``cs_``: dialog_choices test item result (see section :ref:`sec_dialog_choices_test_item`), * ``loop_param``: loop iterator (available from within a loop item, see :ref:`sec_loop_item`), @@ -237,6 +238,7 @@ step list attributes. test_items/json-rpc_test_item.rst test_items/let_test_item.rst test_items/loop_test_item.rst + test_items/lua_func_test_item.rst test_items/plot_test_item.rst test_items/report_test_item.rst test_items/run_test_item.rst diff --git a/doc/manual/testium_manual.pdf b/doc/manual/testium_manual.pdf index 53e6201793708ecc3d29939fa3f09e8808b329bf..06ab50ec241eca5fd815c561f3a45bc0849df494 100644 GIT binary patch delta 71153 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 eX&-yYc3u1 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 delta 67026 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

ody&gKCBH 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 z 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 diff --git a/src/testium/interpreter/test_items/test_item_check.py b/src/testium/interpreter/test_items/test_item_check.py index 30c1e19..3886cbb 100644 --- a/src/testium/interpreter/test_items/test_item_check.py +++ b/src/testium/interpreter/test_items/test_item_check.py @@ -8,7 +8,7 @@ from interpreter.utils.eval import evaluate class TestItemCheckValue(TestItem): """check item usage. - check usage:{check: {name: check my func output, steps: ['$(fn_echo) < 5']}} + check usage:{check: {name: check my func output, steps: ['$(pfn_echo) < 5']}} """ def __init__(self, dict_item, parent = None, status_queue=None, filename=""): self._name = cst.TYPE_CHECK.item_name diff --git a/src/testium/interpreter/test_items/test_item_lua_func.py b/src/testium/interpreter/test_items/test_item_lua_func.py index 75daa83..8e38ac1 100644 --- a/src/testium/interpreter/test_items/test_item_lua_func.py +++ b/src/testium/interpreter/test_items/test_item_lua_func.py @@ -50,6 +50,7 @@ class TestItemLuaFunc(TestItem): if success == TestValue.SUCCESS: self.result.set(TestValue.SUCCESS) res, reported_values = ret + print(res) reported_values = {**reported_values, "returned": res} self.result.reported = ret[1] @@ -58,7 +59,7 @@ class TestItemLuaFunc(TestItem): tm.print_debug(textwrap.indent(pprint.pformat(res), " |")) # The result of the func test item is put in global dir and result - tm.setgd("fn_" + self._name, res) + tm.setgd("lfn_" + self._name, res) self.result.value = res else: diff --git a/src/testium/interpreter/test_items/test_item_py_func.py b/src/testium/interpreter/test_items/test_item_py_func.py index 12a9101..8a687cc 100644 --- a/src/testium/interpreter/test_items/test_item_py_func.py +++ b/src/testium/interpreter/test_items/test_item_py_func.py @@ -58,7 +58,7 @@ class TestItemPyFunc(TestItem): tm.print_debug(textwrap.indent(pprint.pformat(res), " |")) # The result of the func test item is put in global dir and result - tm.setgd("fn_" + self._name, res) + tm.setgd("pfn_" + self._name, res) self.result.value = res else: diff --git a/src/testium/interpreter/utils/jrpc.py b/src/testium/interpreter/utils/jrpc.py index 3850059..900b441 100644 --- a/src/testium/interpreter/utils/jrpc.py +++ b/src/testium/interpreter/utils/jrpc.py @@ -38,7 +38,7 @@ Usage example (server): Usage example (client): - clt = JsonRpcClient(port) + clt = JsonRpcClient(host, port) clt.start() result = clt.call('method_name', {'foo': 'bar'}) @@ -236,8 +236,9 @@ class JsonRpcBase(threading.Thread): - `call()` raises `ETUMRuntimeError` if no active connection exists. """ - def __init__(self, port, req_handler: Callable[[dict], Any]=None, timeout=10, dbg_out=None): + def __init__(self, host, port, req_handler: Callable[[dict], Any]=None, timeout=10, dbg_out=None): super().__init__() + self._host = host self._port = port self._timeout = timeout self._rpc = None @@ -306,8 +307,8 @@ class JsonRpcSrv(JsonRpcBase): The server will raise `ETUMRuntimeError` on accept/connect timeout. """ - def __init__(self, port, req_handler = None, timeout=10): - super().__init__(port, req_handler, timeout) + def __init__(self, host, port, req_handler = None, timeout=10): + super().__init__(host, port, req_handler, timeout) self.name = f"JsonRpcSvr_{port}" def run(self): @@ -318,12 +319,13 @@ class JsonRpcSrv(JsonRpcBase): sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Link of the socket at the configured port - sock.bind(("localhost", self._port)) + sock.bind((self._host, self._port)) sock.settimeout(self._timeout) # Listens incoming connections sock.listen(1) + self.print_info(f"listening on {self._host}:{self._port}") self.print_info("awaiting connection") tslice = 0.2 @@ -331,6 +333,7 @@ class JsonRpcSrv(JsonRpcBase): while True: try: conn, addr = sock.accept() + self.print_info("Client connected") except socket.timeout: if t >= 0: sleep(tslice) @@ -364,13 +367,13 @@ class JsonRpcClient(JsonRpcBase): Typical usage:: - clt = JsonRpcClient(port) + clt = JsonRpcClient(host, port) clt.start() resp = clt.call('method', {'a': 1}) """ - def __init__(self, port, req_handler = None, timeout=10): - super().__init__(port, req_handler, timeout) + def __init__(self, host, port, req_handler = None, timeout=10): + super().__init__(host, port, req_handler, timeout) self.name = f"JsonRpcClt_{port}" def run(self): @@ -383,7 +386,7 @@ class JsonRpcClient(JsonRpcBase): t = self._timeout while True: try: - sock.connect(("localhost", self._port)) + sock.connect((self._host, self._port)) except OSError: t -= tslice if t >= 0: diff --git a/src/testium/interpreter/utils/lua_func_exec.py b/src/testium/interpreter/utils/lua_func_exec.py index 0b773e9..cc8d690 100644 --- a/src/testium/interpreter/utils/lua_func_exec.py +++ b/src/testium/interpreter/utils/lua_func_exec.py @@ -75,15 +75,20 @@ class LuaFuncExecEngine: func_proc_path = os.path.join(tm.gd("testium_path"),"lua_func") lua_env = tm.gd("lua_env", {}) + params = [self._lpath, "main.lua", "--host", "127.0.0.1", "--port", f"{self._port}"] + + if tm.debug_enabled(): + params.append("--verbose") + self._process = subprocess.Popen( - [self._lpath, "main.lua", "--host", "127.0.0.1", "--port", f"{self._port}"], env=lua_env, cwd=func_proc_path + params, env=lua_env, cwd=func_proc_path ) # Port was reserved until the sub-process is started. Now released. if sock is not None: sock.close() - self._rpc = JsonRpcClient(self._port, req_handler=self._req_handler) + self._rpc = JsonRpcClient("localhost", self._port, req_handler=self._req_handler) self._rpc.start() def join(self): diff --git a/src/testium/interpreter/utils/py_func_exec.py b/src/testium/interpreter/utils/py_func_exec.py index 1e2970f..81b70f6 100644 --- a/src/testium/interpreter/utils/py_func_exec.py +++ b/src/testium/interpreter/utils/py_func_exec.py @@ -78,15 +78,19 @@ class PyFuncExecEngine: func_proc_path = tm.gd("testium_path") + params = [self._ppath, "-m", "py_func", "-p", f"{self._port}"] + if tm.debug_enabled(): + params.append("-v") + self._process = subprocess.Popen( - [self._ppath, "-m", "py_func", "-p", f"{self._port}"], cwd=func_proc_path + params, cwd=func_proc_path ) # Port was reserved until the sub-process is started. Now released. if sock is not None: sock.close() - self._rpc = JsonRpcClient(self._port, req_handler=self._req_handler) + self._rpc = JsonRpcClient("localhost", self._port, req_handler=self._req_handler) self._rpc.start() def join(self): diff --git a/src/testium/lua_func/handle.lua b/src/testium/lua_func/handle.lua index fae3e13..1bd0220 100644 --- a/src/testium/lua_func/handle.lua +++ b/src/testium/lua_func/handle.lua @@ -27,7 +27,7 @@ local function _get_func_by_path(file_path, func_name) local target_func = module[func_name] if type(target_func) ~= "function" then - return nil, "Function '" .. func_name .. "' not found in " .. file_path + return nil, "Function '" .. func_name .. "' not found in '" .. file_path .. "'" end return target_func @@ -52,9 +52,10 @@ function handle.func_call(params) -- 3. Execute the function if err == nil then + print(string.format("Function executed from '%s'", pfile)) utils.log("func_call function found '%s', '%s'", file, fname) succ, ret = pcall(func, table.unpack(prms)) - utils.log("func_call returned '%s'", tostring(ret)) + utils.log("func_call returned '%s', '%s'", tostring(succ), tostring(ret)) if succ then res = ret diff --git a/src/testium/lua_func/json-rpc.lua b/src/testium/lua_func/json-rpc.lua index 2d31ab4..1cfead2 100644 --- a/src/testium/lua_func/json-rpc.lua +++ b/src/testium/lua_func/json-rpc.lua @@ -6,9 +6,9 @@ JSONRPC.__index = JSONRPC function JSONRPC.new(sock) local self = setmetatable({}, JSONRPC) - self.sock = sock -- Function to transmit string data to transport (TCP/Websocket) - self.methods = {} -- Methods the server provides to the client - self.pending = {} -- Requests sent to client waiting for response + self.sock = sock -- Function to transmit string data to transport (TCP/Websocket) + self.methods = {} -- Methods the server provides to the client + self.pending = {} -- Requests sent to client waiting for response self.next_id = 1 self.sock:settimeout(0.2) @@ -24,7 +24,7 @@ end function JSONRPC:handle_message(raw_data) utils.log("received: '%s'", raw_data) local ok, msg = pcall(json.decode, raw_data) - if not ok then return self:_send_error(nil, -32700, "Parse error") end + if not ok then return self:_send_error(nil, "received message parse error in lua server") end -- 1. Check if it's a Response (has 'result' or 'error' and 'id') if (msg.id ~= nil) and (msg.result ~= nil or msg.error ~= nil) then @@ -44,37 +44,27 @@ function JSONRPC:_handle_request(req) local ok, ret local res, err if not method then - if req.id then self:_send_error(req.id, -32601, "Method not found") end + if req.id then self:_send_error(req.id, string.format("Method '%s' not registered in lua server")) end return end - utils.log("calling '%s'", method) - ok, ret = pcall(method, req.params) - utils.log("returned '%s', '%s'", tostring(ok), tostring(res)) + ok, ret, err = pcall(method, req.params) + utils.log("Call returned ok='%s', ret='%s'", tostring(ok), tostring(ret)) -- Only send response if it's not a Notification (notifications have no ID) if req.id then if ok then - res, err = ret + res = ret if res == nil then - self:_send_error(req.id, -32603, "Internal error: " .. tostring(err)) + self:_send_error(req.id, tostring(err)) else - self:_send({ jsonrpc = "2.0", result = {returned = res}, id = req.id }) + self:_send({ jsonrpc = "2.0", result = { returned_value = res }, id = req.id }) end else - self:_send_error(req.id, -32603, "Internal error: " .. tostring(ret)) + self:_send_error(req.id, tostring(err)) end end end ---- INTERNAL: Handle responses to requests WE sent --- function JSONRPC:_handle_response(res) --- local callback = self.pending[res.id] --- if callback then --- callback(res.error, res.result) --- self.pending[res.id] = nil --- end --- end - --- Call a method on the client function JSONRPC:call(method, params) local id = self.next_id @@ -109,10 +99,10 @@ function JSONRPC:_send(data) return self.sock:send(j .. "\n") end -function JSONRPC:_send_error(id, code, message) +function JSONRPC:_send_error(id, message) self:_send({ jsonrpc = "2.0", - error = { code = code, message = message }, + error = message, id = id }) end @@ -137,4 +127,4 @@ function JSONRPC:loop() end end -return JSONRPC \ No newline at end of file +return JSONRPC diff --git a/src/testium/lua_func/main.lua b/src/testium/lua_func/main.lua index a7b2cb5..b7dd3b9 100644 --- a/src/testium/lua_func/main.lua +++ b/src/testium/lua_func/main.lua @@ -5,7 +5,7 @@ local config = { host = "0.0.0.0", port = 9000, timeout = 60, - verbose = true, + verbose = false, } local function usage() diff --git a/src/testium/py_func/__init__.py b/src/testium/py_func/__init__.py index 62a26aa..b8414d4 100755 --- a/src/testium/py_func/__init__.py +++ b/src/testium/py_func/__init__.py @@ -22,15 +22,19 @@ def main(): import argparse parser = argparse.ArgumentParser() + parser.add_argument("-i", "--ip", type=str, help="Ip address or hostname to listen to", + default="localhost") parser.add_argument("-p", "--port", type=int, help="port to listen to", - default="/etc/jsonrpc-echo.conf") + default=9000) + parser.add_argument("-v", "--verbose", action='store_true', help="port to listen to") args = parser.parse_args() - thrd_api = _init_api(args.port) + thrd_api = _init_api(args.ip, args.port) outstream = TcpStdOut() stdio_redir.redirect(outstream) # debug the server - # thrd_api.dbg_out = stdio_redir.ini_stdout + if args.verbose: + thrd_api.dbg_out = stdio_redir.ini_stdout try: while thrd_api.is_alive(): thrd_api.join(1) diff --git a/src/testium/py_func/func_call.py b/src/testium/py_func/func_call.py index 20c4f36..e2c1f7c 100644 --- a/src/testium/py_func/func_call.py +++ b/src/testium/py_func/func_call.py @@ -46,7 +46,7 @@ def func_exec(file: str, func_name: str, params: list, verbose: bool=True): reported_values = {} mod = func_module(file) if verbose: - print("Function executed from {}".format( + print("Function executed from '{}'".format( inspect.getabsfile(mod))) # check of the FunctionItem descendants diff --git a/src/testium/py_func/tm.py b/src/testium/py_func/tm.py index c41ee1d..4c3010b 100644 --- a/src/testium/py_func/tm.py +++ b/src/testium/py_func/tm.py @@ -49,7 +49,7 @@ def _make_api(name): for k in SUPPORTED_API: setattr(thismodule, k, _make_api(k)) -def _init_api(port): +def _init_api(host, port): """Start and initialize the remote function handler. Starts a ``FuncHandler`` bound to ``port``, runs it and blocks until @@ -63,7 +63,7 @@ def _init_api(port): ``_func_call_thread``. """ global _func_call_thread - _func_call_thread = FuncHandler(port) + _func_call_thread = FuncHandler(host, port) _func_call_thread.start() _func_call_thread.wait_ready() return _func_call_thread