Skip to content

Commit 51b8479

Browse files
committed
Add unit tests
Signed-off-by: ashbhandare <[email protected]>
1 parent e2fb075 commit 51b8479

File tree

4 files changed

+37
-4
lines changed

4 files changed

+37
-4
lines changed

nemo_run/core/execution/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ def get_launcher_prefix(self) -> Optional[list[str]]:
166166
return launcher.get_nsys_prefix(profile_dir=self.job_dir)
167167

168168
def get_nsys_entrypoint(self) -> str:
169-
return ("nsys","")
169+
return ("nsys", "")
170170

171171
def supports_launcher_transform(self) -> bool:
172172
return False

nemo_run/core/execution/slurm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -551,13 +551,13 @@ def get_launcher_prefix(self) -> Optional[list[str]]:
551551
if launcher.nsys_gpu_metrics:
552552
nsys_prefix += ["$GPU_METRICS_FLAG"]
553553
return nsys_prefix
554-
554+
555555
def get_nsys_entrypoint(self) -> str:
556556
launcher = self.get_launcher()
557557
entrypoint, postfix = "nsys", ""
558558
if launcher.nsys_gpu_metrics:
559-
entrypoint="bash -c 'GPU_METRICS_FLAG=\"\"; if [ \"$SLURM_PROCID\" -eq 0 ]; then GPU_METRICS_FLAG=\"--gpu-metrics-devices=all\"; fi; nsys"
560-
postfix="'"
559+
entrypoint = 'bash -c \'GPU_METRICS_FLAG=""; if [ "$SLURM_PROCID" -eq 0 ]; then GPU_METRICS_FLAG="--gpu-metrics-devices=all"; fi; nsys'
560+
postfix = "'"
561561
return (entrypoint, postfix)
562562

563563
def supports_launcher_transform(self) -> bool:

test/core/execution/test_base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@ def test_get_launcher_str(self):
126126
executor = Executor(launcher="torchrun")
127127
assert isinstance(executor.get_launcher(), Torchrun)
128128

129+
def test_get_nsys_entrypoint(self):
130+
mock_launcher = Launcher()
131+
executor = Executor(launcher=mock_launcher)
132+
assert executor.get_nsys_entrypoint() == ("nsys", "")
133+
129134
def test_cleanup(self):
130135
executor = Executor()
131136
assert executor.cleanup("handle") is None

test/core/execution/test_slurm.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,38 @@ def test_get_launcher_prefix(self):
170170
launcher_mock = MagicMock()
171171
launcher_mock.nsys_profile = True
172172
launcher_mock.get_nsys_prefix.return_value = ["nsys", "profile"]
173+
launcher_mock.nsys_gpu_metrics = False
173174

174175
with patch.object(executor, "get_launcher", return_value=launcher_mock):
175176
assert executor.get_launcher_prefix() == ["nsys", "profile"]
176177

178+
def test_get_launcher_prefix_with_gpu_metrics(self):
179+
"""Test the get_launcher_prefix method with nsys_profile when gpu metrics is enabled."""
180+
executor = SlurmExecutor(account="test")
181+
182+
# Test with launcher that has nsys_profile
183+
launcher_mock = MagicMock()
184+
launcher_mock.nsys_profile = True
185+
launcher_mock.get_nsys_prefix.return_value = ["nsys", "profile"]
186+
launcher_mock.nsys_gpu_metrics = True
187+
188+
with patch.object(executor, "get_launcher", return_value=launcher_mock):
189+
assert executor.get_launcher_prefix() == ["nsys", "profile", "$GPU_METRICS_FLAG"]
190+
191+
def test_get_nsys_entrypoint(self):
192+
"""Test the get_nsys_entrypoint method with nsys_profile."""
193+
executor = SlurmExecutor(account="test")
194+
195+
# Test with launcher that has nsys_profile
196+
launcher_mock = MagicMock()
197+
launcher_mock.nsys_gpu_metrics = True
198+
199+
with patch.object(executor, "get_launcher", return_value=launcher_mock):
200+
assert executor.get_nsys_entrypoint() == (
201+
'bash -c \'GPU_METRICS_FLAG=""; if [ "$SLURM_PROCID" -eq 0 ]; then GPU_METRICS_FLAG="--gpu-metrics-devices=all"; fi; nsys',
202+
"'",
203+
)
204+
177205
def test_supports_launcher_transform(self):
178206
"""Test the supports_launcher_transform method."""
179207
executor = SlurmExecutor(account="test")

0 commit comments

Comments
 (0)