diff options
-rw-r--r-- | tests/test_nsjail.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/test_nsjail.py b/tests/test_nsjail.py index bb176d9..00ca89c 100644 --- a/tests/test_nsjail.py +++ b/tests/test_nsjail.py @@ -122,3 +122,30 @@ class NsJailTests(unittest.TestCase): "INFO:snekbox.nsjail:pid=20 ([STANDALONE MODE]) exited with status: 2, (PIDs left: 0)", log.output ) + + def test_shm_and_tmp_not_mounted(self): + for path in ("/dev/shm", "/run/shm", "/tmp"): + with self.subTest(path=path): + code = dedent(f""" + with open('{path}/test', 'wb') as file: + file.write(bytes([255])) + """).strip() + + result = self.nsjail.python3(code) + self.assertEqual(result.returncode, 1) + self.assertIn("No such file or directory", result.stdout) + self.assertEqual(result.stderr, None) + + def test_multiprocessing_shared_memory_disabled(self): + code = dedent(""" + from multiprocessing.shared_memory import SharedMemory + try: + SharedMemory('test', create=True, size=16) + except FileExistsError: + pass + """).strip() + + result = self.nsjail.python3(code) + self.assertEqual(result.returncode, 1) + self.assertIn("Function not implemented", result.stdout) + self.assertEqual(result.stderr, None) |