2222 StaticLibNotFoundError ,
2323 process_wide_compatibility_guard_rails ,
2424)
25+ from cuda .pathfinder ._dynamic_libs .load_nvidia_dynamic_lib import _resolve_system_loaded_abs_path_in_subprocess
26+ from cuda .pathfinder ._headers .find_nvidia_headers import (
27+ locate_nvidia_header_directory as locate_nvidia_header_directory_raw ,
28+ )
29+ from cuda .pathfinder ._utils .env_vars import get_cuda_path_or_home
2530from cuda .pathfinder ._utils .driver_info import DriverCudaVersion , QueryDriverCudaVersionError
31+ from cuda .pathfinder ._utils .toolkit_info import read_cuda_header_version
32+ from local_helpers import (
33+ locate_real_cuda_toolkit_version_from_cuda_h ,
34+ require_real_cuda_toolkit_version_from_cuda_h ,
35+ )
2636
2737STRICTNESS = os .environ .get ("CUDA_PATHFINDER_TEST_COMPATIBILITY_GUARD_RAILS_STRICTNESS" , "see_what_works" )
2838assert STRICTNESS in ("see_what_works" , "all_must_work" )
@@ -35,6 +45,21 @@ def _default_process_wide_guard_rails_mode(monkeypatch):
3545 monkeypatch .delenv (COMPATIBILITY_GUARD_RAILS_ENV_VAR , raising = False )
3646
3747
48+ @pytest .fixture
49+ def clear_real_cuda_h_probe_caches ():
50+ locate_real_cuda_toolkit_version_from_cuda_h .cache_clear ()
51+ locate_nvidia_header_directory_raw .cache_clear ()
52+ _resolve_system_loaded_abs_path_in_subprocess .cache_clear ()
53+ get_cuda_path_or_home .cache_clear ()
54+ read_cuda_header_version .cache_clear ()
55+ yield
56+ locate_real_cuda_toolkit_version_from_cuda_h .cache_clear ()
57+ locate_nvidia_header_directory_raw .cache_clear ()
58+ _resolve_system_loaded_abs_path_in_subprocess .cache_clear ()
59+ get_cuda_path_or_home .cache_clear ()
60+ read_cuda_header_version .cache_clear ()
61+
62+
3863def _write_cuda_h (
3964 ctk_root : Path ,
4065 toolkit_version : str ,
@@ -653,10 +678,16 @@ def test_find_nvidia_header_directory_returns_none_when_unresolved(monkeypatch):
653678 assert guard_rails .find_nvidia_header_directory ("nvrtc" ) is None
654679
655680
681+ @pytest .mark .usefixtures ("clear_real_cuda_h_probe_caches" )
656682def test_real_wheel_ctk_items_are_compatible (info_summary_append ):
683+ real_ctk = require_real_cuda_toolkit_version_from_cuda_h ()
684+ info_summary_append (
685+ f"real cuda.h CTK version={ real_ctk .version .major } .{ real_ctk .version .minor } "
686+ f"via { real_ctk .found_via } at { real_ctk .cuda_h_path !r} "
687+ )
657688 guard_rails = CompatibilityGuardRails (
658- ctk_major = 13 ,
659- ctk_minor = 2 ,
689+ ctk_major = real_ctk . version . major ,
690+ ctk_minor = real_ctk . version . minor ,
660691 driver_cuda_version = _driver_cuda_version (13000 ),
661692 )
662693
@@ -691,10 +722,16 @@ def test_real_wheel_ctk_items_are_compatible(info_summary_append):
691722 _assert_real_ctk_backed_path (path )
692723
693724
725+ @pytest .mark .usefixtures ("clear_real_cuda_h_probe_caches" )
694726def test_real_wheel_component_version_does_not_override_ctk_line (info_summary_append ):
727+ real_ctk = require_real_cuda_toolkit_version_from_cuda_h ()
728+ info_summary_append (
729+ f"real cuda.h CTK version={ real_ctk .version .major } .{ real_ctk .version .minor } "
730+ f"via { real_ctk .found_via } at { real_ctk .cuda_h_path !r} "
731+ )
695732 guard_rails = CompatibilityGuardRails (
696- ctk_major = 13 ,
697- ctk_minor = 2 ,
733+ ctk_major = real_ctk . version . major ,
734+ ctk_minor = real_ctk . version . minor ,
698735 driver_cuda_version = _driver_cuda_version (13000 ),
699736 )
700737
0 commit comments