aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_os.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_os.py')
-rw-r--r--Lib/test/test_os.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index c6810c07ae0..8de4ef7270b 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -4706,6 +4706,22 @@ class ForkTests(unittest.TestCase):
self.assertEqual(err.decode("utf-8"), "")
self.assertEqual(out.decode("utf-8"), "")
+ def test_fork_at_exit(self):
+ code = """if 1:
+ import atexit
+ import os
+
+ def exit_handler():
+ pid = os.fork()
+ if pid != 0:
+ print("shouldn't be printed")
+
+ atexit.register(exit_handler)
+ """
+ _, out, err = assert_python_ok("-c", code)
+ self.assertEqual(b"", out)
+ self.assertIn(b"can't fork at interpreter shutdown", err)
+
# Only test if the C version is provided, otherwise TestPEP519 already tested
# the pure Python implementation.