diff options
Diffstat (limited to 'Lib/test/libregrtest/utils.py')
-rw-r--r-- | Lib/test/libregrtest/utils.py | 61 |
1 files changed, 13 insertions, 48 deletions
diff --git a/Lib/test/libregrtest/utils.py b/Lib/test/libregrtest/utils.py index f3f0eb5..acf3572 100644 --- a/Lib/test/libregrtest/utils.py +++ b/Lib/test/libregrtest/utils.py @@ -1,4 +1,3 @@ -import atexit import contextlib import faulthandler import locale @@ -495,32 +494,6 @@ def normalize_test_name(test_full_name, *, is_error=False): return short_name -def replace_stdout(): - """Set stdout encoder error handler to backslashreplace (as stderr error - handler) to avoid UnicodeEncodeError when printing a traceback""" - stdout = sys.stdout - try: - fd = stdout.fileno() - except ValueError: - # On IDLE, sys.stdout has no file descriptor and is not a TextIOWrapper - # object. Leaving sys.stdout unchanged. - # - # Catch ValueError to catch io.UnsupportedOperation on TextIOBase - # and ValueError on a closed stream. - return - - sys.stdout = open(fd, 'w', - encoding=stdout.encoding, - errors="backslashreplace", - closefd=False, - newline='\n') - - def restore_stdout(): - sys.stdout.close() - sys.stdout = stdout - atexit.register(restore_stdout) - - def adjust_rlimit_nofile(): """ On macOS the default fd limit (RLIMIT_NOFILE) is sometimes too low (256) @@ -548,20 +521,12 @@ def adjust_rlimit_nofile(): def display_header(use_resources: tuple[str, ...]): - encoding = sys.stdout.encoding - # Print basic platform information print("==", platform.python_implementation(), *sys.version.split()) print("==", platform.platform(aliased=True), "%s-endian" % sys.byteorder) print("== Python build:", ' '.join(get_build_info())) - - cwd = os.getcwd() - # gh-109508: support.os_helper.FS_NONASCII, used by get_work_dir(), cannot - # be encoded to the filesystem encoding on purpose, escape non-encodable - # characters with backslashreplace error handler. - formatted_cwd = cwd.encode(encoding, "backslashreplace").decode(encoding) - print("== cwd:", formatted_cwd) + print("== cwd:", os.getcwd()) cpu_count = os.cpu_count() if cpu_count: @@ -588,18 +553,18 @@ def display_header(use_resources: tuple[str, ...]): sanitizers.append("memory") if ubsan: sanitizers.append("undefined behavior") - if not sanitizers: - return - - print(f"== sanitizers: {', '.join(sanitizers)}") - for sanitizer, env_var in ( - (asan, "ASAN_OPTIONS"), - (msan, "MSAN_OPTIONS"), - (ubsan, "UBSAN_OPTIONS"), - ): - options= os.environ.get(env_var) - if sanitizer and options is not None: - print(f"== {env_var}={options!r}") + if sanitizers: + print(f"== sanitizers: {', '.join(sanitizers)}") + for sanitizer, env_var in ( + (asan, "ASAN_OPTIONS"), + (msan, "MSAN_OPTIONS"), + (ubsan, "UBSAN_OPTIONS"), + ): + options= os.environ.get(env_var) + if sanitizer and options is not None: + print(f"== {env_var}={options!r}") + + print(flush=True) def cleanup_temp_dir(tmp_dir: StrPath): |