Skip to content

Commit b480f1b

Browse files
up tests #225
1 parent 8409bd4 commit b480f1b

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

tests/parameters/test_resources.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import pytest
2-
from feelpp.benchmarking.reframe.resources import TaskAndTaskPerNodeStrategy, NodesAndTasksPerNodeStrategy, TasksAndNodesStrategy, TasksStrategy, MemoryEnforcer, ExclusiveAccessEnforcer, ResourceHandler
2+
from feelpp.benchmarking.reframe.resources import TaskAndTaskPerNodeStrategy, NodesAndTasksPerNodeStrategy, TasksAndNodesStrategy, TasksStrategy, MemoryEnforcer, ExclusiveAccessEnforcer, ResourceHandler, GpusPerNodeStrategy
33

44

55
class ResourcesMocker:
66
""" Mocks the resources object """
7-
def __init__(self, tasks = None, tasks_per_node = None, nodes = None, memory = None, exclusive_access = None ):
7+
def __init__(self, tasks = None, tasks_per_node = None, nodes = None, memory = None, exclusive_access = None, gpus_per_node = None):
88
self.tasks = tasks
99
self.tasks_per_node = tasks_per_node
1010
self.nodes = nodes
1111
self.memory = memory
1212
self.exclusive_access = exclusive_access
13+
self.gpus_per_node = gpus_per_node
1314

1415

1516
class RfmTestMocker:
@@ -129,6 +130,21 @@ def test_nodesAndTasksPerNodeStrategy(self, tasks_per_node, nodes, expected_task
129130
assert rfm_test.num_nodes == nodes
130131
assert rfm_test.num_tasks == expected_tasks
131132

133+
@pytest.mark.parametrize(("gpus_per_node","fails"),[
134+
(1,False), (22,False),
135+
(0, True), (-1, True)
136+
])
137+
def test_GpusPerNodeStrategy(self,gpus_per_node,fails):
138+
""" Tests the GpusPerNodeStrategy
139+
Checks if the number of gpus_per_node is set
140+
Args:
141+
gpus_per_node (int): Number of gpus per node
142+
"""
143+
rfm_test = RfmTestMocker(num_cpus=128, memory_per_node=1000)
144+
rfm_test.num_tasks = 1
145+
self.strategyTest(GpusPerNodeStrategy(),ResourcesMocker(gpus_per_node=gpus_per_node),rfm_test, fails)
146+
if not fails:
147+
assert rfm_test.num_gpus_per_node == gpus_per_node
132148

133149
@pytest.mark.parametrize(("tasks","memory","expected_nodes","expected_tasks_per_node"), [
134150
(128, 900, 1, 128), (128, 1000, 1, 128), (128, 1100, 2, 64), (128, 2100, 4, 42),
@@ -198,6 +214,7 @@ def commonTest(self, resources):
198214
({"tasks_per_node": 128, "nodes": 1, "exclusive_access":True} , False),
199215
({"tasks": 128, "exclusive_access":False}, False),
200216
({"tasks": 128, "memory":100,"exclusive_access":False}, False),
217+
({"tasks":64,"gpus_per_node": 2, "memory":100,"exclusive_access":False}, False),
201218
])
202219
def test_setResources(self, args, fails):
203220
""" Tests the ResourceHandler setResources method

0 commit comments

Comments
 (0)