Skip to content

Commit 77685ac

Browse files
committed
Handle memory OOMs instead of process kills
1 parent 344af49 commit 77685ac

File tree

1 file changed

+7
-16
lines changed

1 file changed

+7
-16
lines changed

tests/test_nsjail.py

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def test_subprocess_resource_unavailable(self):
9090
"""
9191
).strip()
9292

93-
result = self.eval_file(code)
93+
result = self.eval_file(code, nsjail_args=("--cgroup_mem_max", "0"))
9494
self.assertEqual(result.returncode, 1)
9595
self.assertIn("Resource temporarily unavailable", result.stdout)
9696
# Expect n-1 processes to be opened by the presence of string like "2\n3\n4\n"
@@ -220,13 +220,6 @@ def test_forkbomb_resource_unavailable(self):
220220
# limit so that the only reason the test code should be killed is due to
221221
# PID exhaustion.
222222

223-
previous_pids_max, previous_mem_max = (
224-
self.nsjail.config.cgroup_pids_max,
225-
self.nsjail.config.cgroup_mem_max,
226-
)
227-
self.nsjail.config.cgroup_pids_max = 5
228-
self.nsjail.config.cgroup_mem_max = 0
229-
230223
code = dedent(
231224
"""
232225
import os
@@ -235,14 +228,12 @@ def test_forkbomb_resource_unavailable(self):
235228
"""
236229
).strip()
237230

238-
try:
239-
result = self.eval_file(code)
240-
self.assertEqual(result.returncode, 1)
241-
self.assertIn("Resource temporarily unavailable", result.stdout)
242-
self.assertEqual(result.stderr, None)
243-
finally:
244-
self.nsjail.config.cgroup_pids_max = previous_pids_max
245-
self.nsjail.config.cgroup_mem_max = previous_mem_max
231+
result = self.eval_file(
232+
code, nsjail_args=("--cgroup_mem_max", "0", "--cgroup_pids_max", "5")
233+
)
234+
self.assertEqual(result.returncode, 1)
235+
self.assertIn("Resource temporarily unavailable", result.stdout)
236+
self.assertEqual(result.stderr, None)
246237

247238
def test_file_parsing_timeout(self):
248239
code = dedent(

0 commit comments

Comments
 (0)