Skip to content

Commit a40f504

Browse files
author
benoit-cty
committed
Add more test
1 parent ed7a988 commit a40f504

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

tests/test_cpu.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,82 @@ def __init__(self):
383383
self.assertEqual(resource_tracker.cpu_tracker, "RAPL")
384384
self.assertEqual(tracker._conf["cpu_model"], "Mock CPU")
385385

386+
def test_set_cpu_tracking_force_cpu_load_instantiates_tdp(self):
387+
class DummyTracker:
388+
def __init__(self):
389+
self._conf = {"cpu_physical_count": 2, "force_mode_cpu_load": True}
390+
self._force_cpu_power = None
391+
self._output_dir = ""
392+
self._rapl_include_dram = False
393+
self._rapl_prefer_psys = False
394+
self._tracking_mode = "machine"
395+
self._hardware = []
396+
397+
tracker = DummyTracker()
398+
resource_tracker = ResourceTracker(tracker)
399+
fake_tdp = mock.Mock()
400+
fake_tdp.tdp = 50
401+
fake_tdp.model = "Mock CPU"
402+
403+
with mock.patch(
404+
"codecarbon.core.resource_tracker.cpu.TDP", return_value=fake_tdp
405+
) as mocked_tdp, mock.patch(
406+
"codecarbon.core.resource_tracker.ResourceTracker._setup_cpu_load_mode",
407+
return_value=True,
408+
) as mocked_setup_cpu_load, mock.patch(
409+
"codecarbon.core.resource_tracker.ResourceTracker._setup_fallback_tracking"
410+
) as mocked_fallback, mock.patch(
411+
"codecarbon.core.resource_tracker.cpu.is_powergadget_available",
412+
return_value=False,
413+
), mock.patch(
414+
"codecarbon.core.resource_tracker.cpu.is_rapl_available",
415+
return_value=False,
416+
), mock.patch(
417+
"codecarbon.core.resource_tracker.powermetrics.is_powermetrics_available",
418+
return_value=False,
419+
):
420+
resource_tracker.set_CPU_tracking()
421+
422+
mocked_tdp.assert_called_once_with()
423+
mocked_setup_cpu_load.assert_called_once_with(fake_tdp, 100)
424+
mocked_fallback.assert_not_called()
425+
426+
def test_set_cpu_tracking_fallback_instantiates_tdp(self):
427+
class DummyTracker:
428+
def __init__(self):
429+
self._conf = {"cpu_physical_count": 4}
430+
self._force_cpu_power = None
431+
self._output_dir = ""
432+
self._rapl_include_dram = False
433+
self._rapl_prefer_psys = False
434+
self._tracking_mode = "machine"
435+
self._hardware = []
436+
437+
tracker = DummyTracker()
438+
resource_tracker = ResourceTracker(tracker)
439+
fake_tdp = mock.Mock()
440+
fake_tdp.tdp = 20
441+
fake_tdp.model = "Mock CPU"
442+
443+
with mock.patch(
444+
"codecarbon.core.resource_tracker.cpu.TDP", return_value=fake_tdp
445+
) as mocked_tdp, mock.patch(
446+
"codecarbon.core.resource_tracker.ResourceTracker._setup_fallback_tracking"
447+
) as mocked_fallback, mock.patch(
448+
"codecarbon.core.resource_tracker.cpu.is_powergadget_available",
449+
return_value=False,
450+
), mock.patch(
451+
"codecarbon.core.resource_tracker.cpu.is_rapl_available",
452+
return_value=False,
453+
), mock.patch(
454+
"codecarbon.core.resource_tracker.powermetrics.is_powermetrics_available",
455+
return_value=False,
456+
):
457+
resource_tracker.set_CPU_tracking()
458+
459+
mocked_tdp.assert_called_once_with()
460+
mocked_fallback.assert_called_once_with(fake_tdp, 80)
461+
386462

387463
class TestPhysicalCPU(unittest.TestCase):
388464
def test_count_physical_cpus_windows(self):

0 commit comments

Comments
 (0)