diff --git a/devops/scripts/benchmarks/utils/utils.py b/devops/scripts/benchmarks/utils/utils.py index 16e00a0145faa..6b6d0a5eb21a9 100644 --- a/devops/scripts/benchmarks/utils/utils.py +++ b/devops/scripts/benchmarks/utils/utils.py @@ -49,11 +49,10 @@ def run( command = command.split() env = os.environ.copy() - for ldlib in ld_library: if os.path.isdir(ldlib): - env["LD_LIBRARY_PATH"] = ( - ldlib + os.pathsep + env.get("LD_LIBRARY_PATH", "") + env_vars["LD_LIBRARY_PATH"] = os.pathsep.join( + filter(None, [ldlib, env_vars.get("LD_LIBRARY_PATH", "")]) ) else: log.warning(f"LD_LIBRARY_PATH component does not exist: {ldlib}") @@ -61,19 +60,26 @@ def run( # order is important, we want provided sycl rt libraries to be first if add_sycl: sycl_bin_path = os.path.join(options.sycl, "bin") - env["PATH"] = sycl_bin_path + os.pathsep + env.get("PATH", "") + env_vars["PATH"] = os.pathsep.join( + filter(None, [sycl_bin_path, env_vars.get("PATH", "")]) + ) sycl_lib_path = os.path.join(options.sycl, "lib") - env["LD_LIBRARY_PATH"] = ( - sycl_lib_path + os.pathsep + env.get("LD_LIBRARY_PATH", "") + env_vars["LD_LIBRARY_PATH"] = os.pathsep.join( + filter(None, [sycl_lib_path, env_vars.get("LD_LIBRARY_PATH", "")]) ) - env.update(env_vars) - command_str = " ".join(command) env_str = " ".join(f"{key}={value}" for key, value in env_vars.items()) full_command_str = f"{env_str} {command_str}".strip() log.debug(f"Running: {full_command_str}") + for key, value in env_vars.items(): + # Only PATH and LD_LIBRARY_PATH should be prepended to existing values + if key in ("PATH", "LD_LIBRARY_PATH") and (old := env.get(key)): + env[key] = os.pathsep.join([value, old]) + else: + env[key] = value + # Normalize input to bytes if it's a str if isinstance(input, str): input_bytes = input.encode()