[LTP] [PATCH 1/1] kirk: Update to v3.2
Li Wang
liwang@redhat.com
Thu Jan 15 11:34:58 CET 2026
Andrea Cervesato <andrea.cervesato@suse.com> wrote:
> > After playing with the ltp.py for a while and assisted by GPT5,
> > I drafted a simple patch like below, it works from my test, can
> > Do you think it's worth opening a PR to Kirk?
>
> Thanks for checking, see considerations below.
>
> >
> > --- a/libkirk/ltp.py
> > +++ b/libkirk/ltp.py
> > @@ -50,7 +50,7 @@ class LTPFramework(Framework):
> > self,
> > max_runtime: float = 0.0,
> > timeout: float = 30.0,
> > - env: dict = {},
> > + env: Optional[dict] = None,
>
> No need for this, if default it's {} already. That None adds one more
> layer of complexity, because then we need to make sure env is not None.
>
> > ) -> None:
> > """
> > :param max_runtime: filter out all tests above this time value
> > @@ -63,7 +63,8 @@ class LTPFramework(Framework):
> > self._logger = logging.getLogger("libkirk.ltp")
> > self._cmd_matcher = re.compile(r'(?:"[^"]*"|\'[^\']*\'|\S+)')
> > self._max_runtime = max_runtime
> > - self._root = os.environ.get("LTPROOT", "/opt/ltp")
> > + env = env or {}
>
> See above.
>
> > + self._root = env.get("LTPROOT") or os.environ.get("LTPROOT")
> > or "/opt/ltp"
>
> This makes sense, but that "or /opt/ltp" is not needed. See below.
>
> > self._tc_folder = os.path.join(self._root, "testcases", "bin")
> >
> > self._env = {
> > @@ -79,8 +80,7 @@ class LTPFramework(Framework):
> > if timeout:
> > self._env["LTP_TIMEOUT_MUL"] = str((timeout * 0.9) / 300.0)
> >
> > - if env:
> > - self._env.update(env)
> > + self._env.update(env)
> >
> > async def _read_path(self, channel: ComChannel) -> Dict[str, str]:
> > """
>
> diff --git a/libkirk/ltp.py b/libkirk/ltp.py
> index 2c0f6d2..153bc7b 100644
> --- a/libkirk/ltp.py
> +++ b/libkirk/ltp.py
> @@ -63,7 +63,7 @@ class LTPFramework(Framework):
> self._logger = logging.getLogger("libkirk.ltp")
> self._cmd_matcher = re.compile(r'(?:"[^"]*"|\'[^\']*\'|\S+)')
> self._max_runtime = max_runtime
> - self._root = os.environ.get("LTPROOT", "/opt/ltp")
> + self._root = env.get("LTPROOT") or os.environ.get("LTPROOT", "/opt/ltp")
> self._tc_folder = os.path.join(self._root, "testcases", "bin")
>
> self._env = {
> @@ -94,8 +94,7 @@ class LTPFramework(Framework):
> if not ret or ret["returncode"] != 0:
> raise FrameworkError("Can't read PATH variable")
>
> - tcases = os.path.join(self._root, "testcases", "bin")
> - env["PATH"] = ret["stdout"].strip() + f":{tcases}"
> + env["PATH"] = ret["stdout"].strip() + f":{self._tc_folder}"
>
> self._logger.debug("PATH=%s", env["PATH"])
This change worked for me, and I saw in kirk/issues/72 that someone
still wants support for both methods.
So, maybe keeping it can be helpful to set env for remote SUT
execution? Since exporting locally may not affect the remote side
unless Kirk forwards env.
I am not quite familar to Kirk code, so just raise my questions to you
to evaluation.
--
Regards,
Li Wang
More information about the ltp
mailing list