summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2021-08-06 17:09:06 (GMT)
committerGitHub <noreply@github.com>2021-08-06 17:09:06 (GMT)
commita5d99632766b458b42f327e8bd0f82b0345c9a63 (patch)
tree1561e7a0ce97fbc1fd4c8b321539b248b8db64e7
parent36a2497093f0c66c2fb1667308691561c1bbe3f4 (diff)
downloadcpython-a5d99632766b458b42f327e8bd0f82b0345c9a63.zip
cpython-a5d99632766b458b42f327e8bd0f82b0345c9a63.tar.gz
cpython-a5d99632766b458b42f327e8bd0f82b0345c9a63.tar.bz2
bpo-40928: notify users running test_decimal on macOS of malloc warnings (GH-26783)
* When trying to allocate very large regions on macOS, malloc does not fail silently. It sends a noisy error out to STDERR * This provides a helper function to warn the user, and provides the warning for test_decimal, which consistently generates these warnings on macOS. Co-authored-by: Ɓukasz Langa <lukasz@langa.pl> (cherry picked from commit 15d3c14df32a35ac69898a7852115722e30d7857) Co-authored-by: Jack DeVries <58614260+jdevries3133@users.noreply.github.com>
-rw-r--r--Lib/test/support/__init__.py18
-rw-r--r--Lib/test/test_decimal.py7
-rw-r--r--Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst2
3 files changed, 26 insertions, 1 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 4a2ed1e..cb3acec 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -459,6 +459,24 @@ TEST_HOME_DIR = os.path.dirname(TEST_SUPPORT_DIR)
TEST_DATA_DIR = os.path.join(TEST_HOME_DIR, "data")
+def darwin_malloc_err_warning(test_name):
+ """Assure user that loud errors generated by macOS libc's malloc are
+ expected."""
+ if sys.platform != 'darwin':
+ return
+
+ import shutil
+ msg = ' NOTICE '
+ detail = (f'{test_name} may generate "malloc can\'t allocate region"\n'
+ 'warnings on macOS systems. This behavior is known. Do not\n'
+ 'report a bug unless tests are also failing. See bpo-40928.')
+
+ padding, _ = shutil.get_terminal_size()
+ print(msg.center(padding, '-'))
+ print(detail)
+ print('-' * padding)
+
+
def findfile(filename, subdir=None):
"""Try to find a file on sys.path or in the test directory. If it is not
found the argument passed to the function is returned (this does not
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 058829b..28d5690 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -36,7 +36,8 @@ from test.support import (run_unittest, run_doctest, is_resource_enabled,
requires_IEEE_754, requires_docstrings,
requires_legacy_unicode_capi)
from test.support import (TestFailed,
- run_with_locale, cpython_only)
+ run_with_locale, cpython_only,
+ darwin_malloc_err_warning)
from test.support.import_helper import import_fresh_module
from test.support import warnings_helper
import random
@@ -44,6 +45,10 @@ import inspect
import threading
+if sys.platform == 'darwin':
+ darwin_malloc_err_warning('test_decimal')
+
+
C = import_fresh_module('decimal', fresh=['_decimal'])
P = import_fresh_module('decimal', blocked=['_decimal'])
orig_sys_decimal = sys.modules['decimal']
diff --git a/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst
new file mode 100644
index 0000000..c9a5e1b
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst
@@ -0,0 +1,2 @@
+Notify users running test_decimal regression tests on macOS of potential
+harmless "malloc can't allocate region" messages spewed by test_decimal.