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

1#!/usr/bin/env python 

2# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 

3# SPDX-License-Identifier: Apache-2.0 

4 

5import json 

6 

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 

10 

11 

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 

26 

27 

28def probe_canary_abs_path_and_print_json(libname: str) -> None: 

29 print(json.dumps(_probe_canary_abs_path(libname)))