diff options
author | Gregory P. Smith <greg@krypto.org> | 2018-12-31 04:17:57 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-31 04:17:57 (GMT) |
commit | e5796c42c687e1454e84dcc50e6f67db48ff69a0 (patch) | |
tree | 76456a7ba60a6e0ec8c54443ba5c1f1fe144fd51 /Lib | |
parent | d6f45b23a59de5782ba38d3c698da9c08aaca11b (diff) | |
download | cpython-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.py | 14 |
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 |