diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py index 6eb9e875bd6..28a902355e8 100644 --- a/Lib/test/pythoninfo.py +++ b/Lib/test/pythoninfo.py @@ -651,6 +651,29 @@ def collect_subprocess(info_add): copy_attributes(info_add, subprocess, 'subprocess.%s', ('_USE_POSIX_SPAWN',)) +def collect_windows(info_add): + try: + import ctypes + except ImportError: + return + + if not hasattr(ctypes, 'WinDLL'): + return + + ntdll = ctypes.WinDLL('ntdll') + BOOLEAN = ctypes.c_ubyte + + try: + RtlAreLongPathsEnabled = ntdll.RtlAreLongPathsEnabled + except AttributeError: + res = '' + else: + RtlAreLongPathsEnabled.restype = BOOLEAN + RtlAreLongPathsEnabled.argtypes = () + res = bool(RtlAreLongPathsEnabled()) + info_add('windows.RtlAreLongPathsEnabled', res) + + def collect_info(info): error = False info_add = info.add @@ -684,6 +707,7 @@ def collect_info(info): collect_testcapi, collect_time, collect_tkinter, + collect_windows, collect_zlib, # Collecting from tests should be last as they have side effects.