Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DPDK: Add 32bit test #3489

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Pkg-Config: Allow update of PKG_CONFIG_PATH
mcgov committed Jan 22, 2025
commit 1a5b04a46226789f725e07e4c1192c6ee78c65f1
39 changes: 33 additions & 6 deletions lisa/tools/pkgconfig.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

from typing import Optional

from assertpy import assert_that
from semver import VersionInfo

@@ -23,27 +25,52 @@ def install(self) -> bool:
self.node.os.install_packages("pkg-config")
return True

def package_info_exists(self, package_name: str) -> bool:
package_info_result = self.run(f"--modversion {package_name}", force_run=True)
def package_info_exists(
self, package_name: str, pkg_config_path: Optional[str] = None
) -> bool:
if pkg_config_path:
update_env = {"PKG_CONFIG_PATH": f"{pkg_config_path}"}
else:
update_env = None
package_info_result = self.run(
f"--modversion {package_name}",
force_run=True,
shell=True,
update_envs=update_env,
)
return package_info_result.exit_code == 0

def get_package_info(
self,
package_name: str,
update_cached: bool = False,
pkg_config_path: Optional[str] = None,
) -> str:
info_exists = self.package_info_exists(package_name=package_name)
info_exists = self.package_info_exists(
package_name=package_name, pkg_config_path=pkg_config_path
)
if pkg_config_path:
update_env = {"PKG_CONFIG_PATH": f"{pkg_config_path}"}
else:
update_env = None
assert_that(info_exists).described_as(
(
f"pkg-config information was not available for {package_name}. "
"This indicates an installation or package detection bug. "
f"ensure .pc file is available for {package_name} on this OS."
)
).is_true()
return self.run(f"--modversion {package_name}").stdout
return self.run(
f"--modversion {package_name}", shell=True, update_envs=update_env
).stdout

def get_package_version(
self, package_name: str, update_cached: bool = False
self,
package_name: str,
update_cached: bool = False,
pkg_config_path: Optional[str] = None,
) -> VersionInfo:
version_info = self.get_package_info(package_name, update_cached=update_cached)
version_info = self.get_package_info(
package_name, update_cached=update_cached, pkg_config_path=pkg_config_path
)
return parse_version(version_info)