[Python-checkins] bpo-37412: pythoninfo: add Windows long paths (GH-14434)
Victor Stinner
webhook-mailer at python.org
Fri Jun 28 12:05:09 EDT 2019
https://github.com/python/cpython/commit/64580da33122a10aef75c76aa3ff87c0ee11e3d7
commit: 64580da33122a10aef75c76aa3ff87c0ee11e3d7
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2019-06-28T18:05:05+02:00
summary:
bpo-37412: pythoninfo: add Windows long paths (GH-14434)
On Windows, test.pythoninfo now checks if support for long paths is
enabled using ntdll.RtlAreLongPathsEnabled() function.
Co-Authored-By: Eryk Sun <eryksun at gmail.com>
files:
M Lib/test/pythoninfo.py
diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py
index 6eb9e875bd67..28a902355e8a 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 = '<function not available>'
+ 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.
More information about the Python-checkins
mailing list