Coverage for cuda / pathfinder / _dynamic_libs / canary_probe_subprocess.py: 30.00%
20 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-08 01:07 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-08 01:07 +0000
1#!/usr/bin/env python
2# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3# SPDX-License-Identifier: Apache-2.0
5import json
7from cuda.pathfinder._dynamic_libs.lib_descriptor import LIB_DESCRIPTORS
8from cuda.pathfinder._dynamic_libs.load_dl_common import DynamicLibNotFoundError, LoadedDL
9from cuda.pathfinder._dynamic_libs.platform_loader import LOADER
12def _probe_canary_abs_path(libname: str) -> str | None:
13 desc = LIB_DESCRIPTORS.get(libname)
14 if desc is None:
15 raise ValueError(f"Unsupported canary library name: {libname!r}")
16 try:
17 loaded: LoadedDL | None = LOADER.load_with_system_search(desc)
18 except DynamicLibNotFoundError:
19 return None
20 if loaded is None:
21 return None
22 abs_path = loaded.abs_path
23 if not isinstance(abs_path, str):
24 return None
25 return abs_path
28def probe_canary_abs_path_and_print_json(libname: str) -> None:
29 print(json.dumps(_probe_canary_abs_path(libname)))