From d647f5c413d92f5e0b7e53f70c7b5f908e56a6c5 Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Sat, 24 Jan 2026 14:33:38 -0800 Subject: [PATCH] Fix #1531 and slightly enhance skip reporting Deduplicate root-only devices while preserving order. --- cuda_bindings/tests/nvml/test_compute_mode.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/cuda_bindings/tests/nvml/test_compute_mode.py b/cuda_bindings/tests/nvml/test_compute_mode.py index 6ef1818fe9..3bb752577d 100644 --- a/cuda_bindings/tests/nvml/test_compute_mode.py +++ b/cuda_bindings/tests/nvml/test_compute_mode.py @@ -18,6 +18,7 @@ @pytest.mark.skipif(sys.platform == "win32", reason="Test not supported on Windows") def test_compute_mode_supported_nonroot(all_devices): + skipped_devices = {} # Using dict (not set) to preserve insertion order. for device in all_devices: with unsupported_before(device, None): original_compute_mode = nvml.device_get_compute_mode(device) @@ -26,6 +27,14 @@ def test_compute_mode_supported_nonroot(all_devices): try: nvml.device_set_compute_mode(device, cm) except nvml.NoPermissionError: - skip_reasons.add(f"nvmlDeviceSetComputeMode requires root for device {device}") - continue - assert original_compute_mode == nvml.device_get_compute_mode(device), "Compute mode shouldn't have changed" + skipped_devices[str(device)] = 1 # value is not used. + else: + nvml.device_set_compute_mode(device, original_compute_mode) + assert original_compute_mode == nvml.device_get_compute_mode(device), ( + "Compute mode shouldn't have changed" + ) + + if skipped_devices: + pytest.skip( + f"nvmlDeviceSetComputeMode requires root for {len(skipped_devices)} device(s): {', '.join(skipped_devices)}" + )