@@ -1904,6 +1904,87 @@ def test_set_get_parameter_size_t():
19041904 cufileVersionLessThan (1140 ), reason = "cuFile parameter APIs require cuFile library version 1.14.0 or later"
19051905)
19061906
1907+ def test_set_get_parameter_bool ():
1908+ """Test setting and getting boolean parameters with cuFile validation."""
1909+
1910+ # Initialize CUDA
1911+ (err ,) = cuda .cuInit (0 )
1912+ assert err == cuda .CUresult .CUDA_SUCCESS
1913+
1914+ err , device = cuda .cuDeviceGet (0 )
1915+ assert err == cuda .CUresult .CUDA_SUCCESS
1916+
1917+ err , ctx = cuda .cuDevicePrimaryCtxRetain (device )
1918+ assert err == cuda .CUresult .CUDA_SUCCESS
1919+ (err ,) = cuda .cuCtxSetCurrent (ctx )
1920+ assert err == cuda .CUresult .CUDA_SUCCESS
1921+
1922+ try :
1923+ # Test setting and getting various boolean parameters
1924+
1925+ # Test poll mode
1926+ cufile .set_parameter_bool (cufile .BoolConfigParameter .PROPERTIES_USE_POLL_MODE , True )
1927+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .PROPERTIES_USE_POLL_MODE )
1928+ assert retrieved_value is True , f"Poll mode mismatch: set True, got { retrieved_value } "
1929+
1930+ # Test compatibility mode
1931+ cufile .set_parameter_bool (cufile .BoolConfigParameter .PROPERTIES_ALLOW_COMPAT_MODE , False )
1932+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .PROPERTIES_ALLOW_COMPAT_MODE )
1933+ assert retrieved_value is False , f"Compatibility mode mismatch: set False, got { retrieved_value } "
1934+
1935+ # Test force compatibility mode
1936+ cufile .set_parameter_bool (cufile .BoolConfigParameter .FORCE_COMPAT_MODE , False )
1937+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .FORCE_COMPAT_MODE )
1938+ assert retrieved_value is False , f"Force compatibility mode mismatch: set False, got { retrieved_value } "
1939+
1940+ # Test aggressive API check
1941+ cufile .set_parameter_bool (cufile .BoolConfigParameter .FS_MISC_API_CHECK_AGGRESSIVE , True )
1942+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .FS_MISC_API_CHECK_AGGRESSIVE )
1943+ assert retrieved_value is True , f"Aggressive API check mismatch: set True, got { retrieved_value } "
1944+
1945+ # Test parallel IO
1946+ cufile .set_parameter_bool (cufile .BoolConfigParameter .EXECUTION_PARALLEL_IO , True )
1947+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .EXECUTION_PARALLEL_IO )
1948+ assert retrieved_value is True , f"Parallel IO mismatch: set True, got { retrieved_value } "
1949+
1950+ # Test NVTX profiling
1951+ cufile .set_parameter_bool (cufile .BoolConfigParameter .PROFILE_NVTX , False )
1952+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .PROFILE_NVTX )
1953+ assert retrieved_value is False , f"NVTX profiling mismatch: set False, got { retrieved_value } "
1954+
1955+ # Test system memory allowance
1956+ cufile .set_parameter_bool (cufile .BoolConfigParameter .PROPERTIES_ALLOW_SYSTEM_MEMORY , True )
1957+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .PROPERTIES_ALLOW_SYSTEM_MEMORY )
1958+ assert retrieved_value is True , f"System memory allowance mismatch: set True, got { retrieved_value } "
1959+
1960+ # Test PCI P2P DMA
1961+ cufile .set_parameter_bool (cufile .BoolConfigParameter .USE_PCIP2PDMA , True )
1962+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .USE_PCIP2PDMA )
1963+ assert retrieved_value is True , f"PCI P2P DMA mismatch: set True, got { retrieved_value } "
1964+
1965+ # Test IO uring preference
1966+ cufile .set_parameter_bool (cufile .BoolConfigParameter .PREFER_IO_URING , False )
1967+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .PREFER_IO_URING )
1968+ assert retrieved_value is False , f"IO uring preference mismatch: set False, got { retrieved_value } "
1969+
1970+ # Test force O_DIRECT mode
1971+ cufile .set_parameter_bool (cufile .BoolConfigParameter .FORCE_ODIRECT_MODE , True )
1972+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .FORCE_ODIRECT_MODE )
1973+ assert retrieved_value is True , f"Force O_DIRECT mode mismatch: set True, got { retrieved_value } "
1974+
1975+ # Test topology detection skip
1976+ cufile .set_parameter_bool (cufile .BoolConfigParameter .SKIP_TOPOLOGY_DETECTION , False )
1977+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .SKIP_TOPOLOGY_DETECTION )
1978+ assert retrieved_value is False , f"Topology detection skip mismatch: set False, got { retrieved_value } "
1979+
1980+ # Test stream memops bypass
1981+ cufile .set_parameter_bool (cufile .BoolConfigParameter .STREAM_MEMOPS_BYPASS , True )
1982+ retrieved_value = cufile .get_parameter_bool (cufile .BoolConfigParameter .STREAM_MEMOPS_BYPASS )
1983+ assert retrieved_value is True , f"Stream memops bypass mismatch: set True, got { retrieved_value } "
1984+
1985+ finally :
1986+ cuda .cuDevicePrimaryCtxRelease (device )
1987+
19071988def test_set_get_parameter_string ():
19081989 """Test setting and getting string parameters with cuFile validation."""
19091990
0 commit comments