summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_io.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-03-02 16:05:14 (GMT)
committerGitHub <noreply@github.com>2022-03-02 16:05:14 (GMT)
commit93264452d952d9ba604bacf2947c2df5dd477931 (patch)
tree1fc7301e3f261de99b2e4ed8d797fd84aaaa1381 /Lib/test/test_io.py
parent7dbb2f8eaf07c105f4d2bb0fe61763463e68372d (diff)
downloadcpython-93264452d952d9ba604bacf2947c2df5dd477931.zip
cpython-93264452d952d9ba604bacf2947c2df5dd477931.tar.gz
cpython-93264452d952d9ba604bacf2947c2df5dd477931.tar.bz2
[3.10] bpo-46633: Skip tests on ASAN and/or MSAN builds (GH-31632) (GH-31634)
* Refactor sanitiser skip tests into test.support (GH-30889) * Refactor sanitizer skip tests into test.support (cherry picked from commit b1cb8430504931f7854eac5d32cba74770078a4e) * Add skips to crashing tests under sanitizers instead of manually skipping them (GH-30897) (cherry picked from commit a27505345e34d462139f5f8b6b5e7c9a59955150) * bpo-46633: Skip tests on ASAN and/or MSAN builds (GH-31632) Skip tests on ASAN and/or MSAN builds: * multiprocessing tests * test___all__ * test_concurrent_futures * test_decimal * test_peg_generator * test_tools (cherry picked from commit 9204bb72a2da5885facc747e63d2bd2d654606fe) Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Diffstat (limited to 'Lib/test/test_io.py')
-rw-r--r--Lib/test/test_io.py25
1 files changed, 7 insertions, 18 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 35013b6..fb83762 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -28,7 +28,6 @@ import pickle
import random
import signal
import sys
-import sysconfig
import textwrap
import threading
import time
@@ -44,6 +43,7 @@ from test.support import import_helper
from test.support import os_helper
from test.support import threading_helper
from test.support import warnings_helper
+from test.support import skip_if_sanitizer
from test.support.os_helper import FakePath
import codecs
@@ -66,17 +66,6 @@ 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
-)
-
-ADDRESS_SANITIZER = (
- '-fsanitize=address' in _cflags
-)
-
# Does io.IOBase finalizer log the exception if the close() method fails?
# The exception is ignored silently by default in release build.
IOBASE_EMITS_UNRAISABLE = (hasattr(sys, "gettotalrefcount") or sys.flags.dev_mode)
@@ -1550,8 +1539,8 @@ class BufferedReaderTest(unittest.TestCase, CommonBufferedTests):
class CBufferedReaderTest(BufferedReaderTest, SizeofTest):
tp = io.BufferedReader
- @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
- "instead of returning NULL for malloc failure.")
+ @skip_if_sanitizer(memory=True, address=True, reason= "sanitizer 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
@@ -1915,8 +1904,8 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests):
class CBufferedWriterTest(BufferedWriterTest, SizeofTest):
tp = io.BufferedWriter
- @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
- "instead of returning NULL for malloc failure.")
+ @skip_if_sanitizer(memory=True, address=True, reason= "sanitizer 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
@@ -2414,8 +2403,8 @@ class BufferedRandomTest(BufferedReaderTest, BufferedWriterTest):
class CBufferedRandomTest(BufferedRandomTest, SizeofTest):
tp = io.BufferedRandom
- @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
- "instead of returning NULL for malloc failure.")
+ @skip_if_sanitizer(memory=True, address=True, reason= "sanitizer 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