Skip to content

Commit bf8d4f9

Browse files
add tests using mocking for nvml
1 parent d625386 commit bf8d4f9

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

test/test_nvml_mocked.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import numpy as np
2+
3+
try:
4+
from mock import patch, Mock, MagicMock
5+
except ImportError:
6+
from unittest.mock import patch, Mock
7+
8+
from kernel_tuner.nvml import get_nvml_pwr_limits, get_nvml_gr_clocks, get_nvml_mem_clocks, get_idle_power
9+
10+
11+
12+
def setup_mock(nvml):
13+
nvml.return_value.configure_mock(pwr_constraints=(90000, 150000),
14+
supported_mem_clocks=[2100],
15+
supported_gr_clocks={2100: [1000, 2000, 3000]},
16+
pwr_usage=lambda : 5000)
17+
18+
return nvml
19+
20+
21+
@patch('kernel_tuner.nvml.nvml')
22+
def test_get_nvml_pwr_limits(nvml):
23+
nvml = setup_mock(nvml)
24+
result = get_nvml_pwr_limits(0, quiet=True)
25+
assert result['nvml_pwr_limit'] == [90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150]
26+
27+
result = get_nvml_pwr_limits(0, n=5, quiet=True)
28+
assert len(result['nvml_pwr_limit']) == 5
29+
assert result['nvml_pwr_limit'][0] == 90
30+
assert result['nvml_pwr_limit'][-1] == 150
31+
32+
33+
@patch('kernel_tuner.nvml.nvml')
34+
def test_get_nvml_gr_clocks(nvml):
35+
nvml = setup_mock(nvml)
36+
result = get_nvml_gr_clocks(0, quiet=True)
37+
assert result['nvml_gr_clock'] == [1000, 2000, 3000]
38+
39+
result = get_nvml_gr_clocks(0, n=2, quiet=True)
40+
assert result['nvml_gr_clock'] == [1000, 3000]
41+
42+
43+
@patch('kernel_tuner.nvml.nvml')
44+
def test_get_nvml_mem_clocks(nvml):
45+
nvml = setup_mock(nvml)
46+
result = get_nvml_mem_clocks(0, quiet=False)
47+
print(result)
48+
assert result['nvml_mem_clock'] == [2100]
49+
50+
51+
@patch('kernel_tuner.nvml.nvml')
52+
def test_get_idle_power(nvml):
53+
nvml = setup_mock(nvml)
54+
result = get_idle_power(0)
55+
assert np.isclose(result, 5)
56+

0 commit comments

Comments
 (0)