summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2021-10-21 13:12:20 (GMT)
committerGitHub <noreply@github.com>2021-10-21 13:12:20 (GMT)
commit9942f42a93ccda047fd3558c47b822e99afe10c0 (patch)
tree5a28ecf799a90b9225530c12acd7c38c1935f156 /Lib
parent5a14f71fe869d4a62dcdeb9a8fbbb5884c75060c (diff)
downloadcpython-9942f42a93ccda047fd3558c47b822e99afe10c0.zip
cpython-9942f42a93ccda047fd3558c47b822e99afe10c0.tar.gz
cpython-9942f42a93ccda047fd3558c47b822e99afe10c0.tar.bz2
bpo-45522: Allow to disable freelists on build time (GH-29056)
Freelists for object structs can now be disabled. A new ``configure`` option ``--without-freelists`` can be used to disable all freelists except empty tuple singleton. Internal Py*_MAXFREELIST macros can now be defined as 0 without causing compiler warnings and segfaults. Signed-off-by: Christian Heimes <christian@python.org>
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_sys.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 2182898..b0688e1 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -825,7 +825,18 @@ class SysModuleTest(unittest.TestCase):
from test.support.script_helper import assert_python_ok
args = ['-c', 'import sys; sys._debugmallocstats()']
ret, out, err = assert_python_ok(*args)
- self.assertIn(b"free PyDictObjects", err)
+
+ # Output of sys._debugmallocstats() depends on configure flags.
+ # The sysconfig vars are not available on Windows.
+ if sys.platform != "win32":
+ with_freelists = sysconfig.get_config_var("WITH_FREELISTS")
+ with_pymalloc = sysconfig.get_config_var("WITH_PYMALLOC")
+ if with_freelists:
+ self.assertIn(b"free PyDictObjects", err)
+ if with_pymalloc:
+ self.assertIn(b'Small block threshold', err)
+ if not with_freelists and not with_pymalloc:
+ self.assertFalse(err)
# The function has no parameter
self.assertRaises(TypeError, sys._debugmallocstats, True)