diff --git a/tests/lib/install_pkg.py b/tests/lib/install_pkg.py index 2d89ccfbeba..5729ac5b413 100644 --- a/tests/lib/install_pkg.py +++ b/tests/lib/install_pkg.py @@ -4,13 +4,32 @@ """ Common utilities for OpenVINO install package. """ -import sys +import errno +import os from pathlib import Path -from proc_utils import get_env_from # pylint: disable=import-error +import subprocess +import sys def get_openvino_environment(install_prefix: Path): """ Get OpenVINO environment variables """ - script = "setupvars.bat" if sys.platform == "win32" else "setupvars.sh" - return get_env_from(install_prefix / "bin" / script) + if sys.platform == "win32": + script = install_prefix / "bin" / "setupvars.bat" + cmd = f"{script} && set" + else: + script = install_prefix / "bin" / "setupvars.sh" + # setupvars.sh is not compatible with /bin/sh. Using bash. + cmd = f'bash -c ". {script} && env"' + + if not os.path.exists(str(script)): + raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), str(script)) + + env = {} + dump = subprocess.check_output(cmd, shell=True, universal_newlines=True).strip() + for line in dump.split("\n"): + # split by first '=' + pair = [str(val).strip() for val in line.split("=", 1)] + if len(pair) > 1 and pair[0]: # ignore invalid entries + env[pair[0]] = pair[1] + return env diff --git a/tests/lib/path_utils.py b/tests/lib/path_utils.py index f65182761e2..5d9718996a0 100644 --- a/tests/lib/path_utils.py +++ b/tests/lib/path_utils.py @@ -2,7 +2,7 @@ # Copyright (C) 2021 Intel Corporation # SPDX-License-Identifier: Apache-2.0 -""" Common utilities for working with processes. +""" Common utilities for working with paths """ import os diff --git a/tests/lib/proc_utils.py b/tests/lib/proc_utils.py index 659c22814aa..8057765bfc0 100644 --- a/tests/lib/proc_utils.py +++ b/tests/lib/proc_utils.py @@ -5,30 +5,8 @@ """ Common utilities for working with processes. """ -import errno -import os import logging import subprocess -import sys - - -def get_env_from(script): - """ Get environment set by a shell script - """ - if not os.path.exists(str(script)): - raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), str(script)) - env = {} - if sys.platform == "win32": - cmd = f'"{script}" && set' - else: - cmd = f'. "{script}" && env' - dump = subprocess.check_output(cmd, shell=True, universal_newlines=True).strip() - for line in dump.split("\n"): - # split by first '=' - pair = [str(val).strip() for val in line.split("=", 1)] - if len(pair) > 1 and pair[0]: # ignore invalid entries - env[pair[0]] = pair[1] - return env def cmd_exec(args, env=None, log=None, verbose=True):