summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_interpreters/test_stress.py
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2023-12-12 15:24:31 (GMT)
committerGitHub <noreply@github.com>2023-12-12 15:24:31 (GMT)
commit86a77f4e1a5ceaff1036b0072521e12752b5df47 (patch)
treececc78dab93112a3a92ae66fc0156630408063b3 /Lib/test/test_interpreters/test_stress.py
parentf26bfe4b25f7e5a4f68fcac26207b7175abad208 (diff)
downloadcpython-86a77f4e1a5ceaff1036b0072521e12752b5df47.zip
cpython-86a77f4e1a5ceaff1036b0072521e12752b5df47.tar.gz
cpython-86a77f4e1a5ceaff1036b0072521e12752b5df47.tar.bz2
gh-76785: Fixes for test.support.interpreters (gh-112982)
This involves a number of changes for PEP 734.
Diffstat (limited to 'Lib/test/test_interpreters/test_stress.py')
-rw-r--r--Lib/test/test_interpreters/test_stress.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/Lib/test/test_interpreters/test_stress.py b/Lib/test/test_interpreters/test_stress.py
new file mode 100644
index 0000000..3cc570b
--- /dev/null
+++ b/Lib/test/test_interpreters/test_stress.py
@@ -0,0 +1,38 @@
+import threading
+import unittest
+
+from test import support
+from test.support import import_helper
+from test.support import threading_helper
+# Raise SkipTest if subinterpreters not supported.
+import_helper.import_module('_xxsubinterpreters')
+from test.support import interpreters
+from .utils import TestBase
+
+
+class StressTests(TestBase):
+
+ # In these tests we generally want a lot of interpreters,
+ # but not so many that any test takes too long.
+
+ @support.requires_resource('cpu')
+ def test_create_many_sequential(self):
+ alive = []
+ for _ in range(100):
+ interp = interpreters.create()
+ alive.append(interp)
+
+ @support.requires_resource('cpu')
+ def test_create_many_threaded(self):
+ alive = []
+ def task():
+ interp = interpreters.create()
+ alive.append(interp)
+ threads = (threading.Thread(target=task) for _ in range(200))
+ with threading_helper.start_threads(threads):
+ pass
+
+
+if __name__ == '__main__':
+ # Test needs to be a package, so we can do relative imports.
+ unittest.main()