From 5f73e5356e8c18cc3274928bc348e0b2f6770a0c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 28 Mar 2024 17:40:58 +0100 Subject: [PATCH] gh-114331: Skip decimal test_maxcontext_exact_arith on s390x (#117326) Add test.support.skip_on_s390x decorator. (cherry picked from commit 6702d2bf6edcd5b5415e17837383623b9d76a5b8) --- Lib/test/support/__init__.py | 5 +++++ Lib/test/test_decimal.py | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index dc7a6e6741b8bb..059542c24335a2 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -56,6 +56,7 @@ "run_with_tz", "PGO", "missing_compiler_executable", "ALWAYS_EQ", "NEVER_EQ", "LARGEST", "SMALLEST", "LOOPBACK_TIMEOUT", "INTERNET_TIMEOUT", "SHORT_TIMEOUT", "LONG_TIMEOUT", + "skip_on_s390x", ] @@ -2238,3 +2239,7 @@ def copy_python_src_ignore(path, names): 'build', } return ignored + +#Windows doesn't have os.uname() but it doesn't support s390x. +skip_on_s390x = unittest.skipIf(hasattr(os, 'uname') and os.uname().machine == 's390x', + 'skipped on s390x') diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index f8e51a489bd29b..a8324f98d052ea 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -37,7 +37,8 @@ requires_legacy_unicode_capi, check_sanitizer) from test.support import (TestFailed, run_with_locale, cpython_only, - darwin_malloc_err_warning, is_emscripten) + darwin_malloc_err_warning, is_emscripten, + skip_on_s390x) from test.support.import_helper import import_fresh_module from test.support import threading_helper from test.support import warnings_helper @@ -5654,6 +5655,9 @@ def __abs__(self): @unittest.skipIf(check_sanitizer(address=True, memory=True), "ASAN/MSAN sanitizer defaults to crashing " "instead of returning NULL for malloc failure.") + # gh-114331: The test allocates 784 271 641 GiB and mimalloc does not fail + # to allocate it when using mimalloc on s390x. + @skip_on_s390x def test_maxcontext_exact_arith(self): # Make sure that exact operations do not raise MemoryError due