summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGregory P. Smith <greg@krypto.org>2018-12-31 04:17:57 (GMT)
committerGitHub <noreply@github.com>2018-12-31 04:17:57 (GMT)
commite5796c42c687e1454e84dcc50e6f67db48ff69a0 (patch)
tree76456a7ba60a6e0ec8c54443ba5c1f1fe144fd51 /Lib
parentd6f45b23a59de5782ba38d3c698da9c08aaca11b (diff)
downloadcpython-e5796c42c687e1454e84dcc50e6f67db48ff69a0.zip
cpython-e5796c42c687e1454e84dcc50e6f67db48ff69a0.tar.gz
cpython-e5796c42c687e1454e84dcc50e6f67db48ff69a0.tar.bz2
bpo-35214: Skip test_io tests that'd cause a huge malloc under msan (#11385)
* skip test_constructor under msan. * fix the others as well. * reuse existing related news entry. * typo fix
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_io.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index c364487..d245c5d 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -28,6 +28,7 @@ import pickle
import random
import signal
import sys
+import sysconfig
import threading
import time
import unittest
@@ -59,6 +60,13 @@ else:
class EmptyStruct(ctypes.Structure):
pass
+_cflags = sysconfig.get_config_var('CFLAGS') or ''
+_config_args = sysconfig.get_config_var('CONFIG_ARGS') or ''
+MEMORY_SANITIZER = (
+ '-fsanitize=memory' in _cflags or
+ '--with-memory-sanitizer' in _config_args
+)
+
def _default_chunk_size():
"""Get the default TextIOWrapper chunk size"""
with open(__file__, "r", encoding="latin-1") as f:
@@ -1496,6 +1504,8 @@ class BufferedReaderTest(unittest.TestCase, CommonBufferedTests):
class CBufferedReaderTest(BufferedReaderTest, SizeofTest):
tp = io.BufferedReader
+ @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+ "instead of returning NULL for malloc failure.")
def test_constructor(self):
BufferedReaderTest.test_constructor(self)
# The allocation can succeed on 32-bit builds, e.g. with more
@@ -1840,6 +1850,8 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests):
class CBufferedWriterTest(BufferedWriterTest, SizeofTest):
tp = io.BufferedWriter
+ @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+ "instead of returning NULL for malloc failure.")
def test_constructor(self):
BufferedWriterTest.test_constructor(self)
# The allocation can succeed on 32-bit builds, e.g. with more
@@ -2314,6 +2326,8 @@ class BufferedRandomTest(BufferedReaderTest, BufferedWriterTest):
class CBufferedRandomTest(BufferedRandomTest, SizeofTest):
tp = io.BufferedRandom
+ @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+ "instead of returning NULL for malloc failure.")
def test_constructor(self):
BufferedRandomTest.test_constructor(self)
# The allocation can succeed on 32-bit builds, e.g. with more