From a92941ff12c1d554f42c05ed24621894a758b40f Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 19 Sep 2017 07:37:24 -0700 Subject: pythoninfo: ignore OSError(ENOSYS) on getrandom() (#3655) --- Lib/test/pythoninfo.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py index 15cce34..5447ab8 100644 --- a/Lib/test/pythoninfo.py +++ b/Lib/test/pythoninfo.py @@ -2,6 +2,7 @@ Collect various informations about Python to help debugging test failures. """ from __future__ import print_function +import errno import re import sys import traceback @@ -223,11 +224,17 @@ def collect_os(info_add): if hasattr(os, 'getrandom'): # PEP 524: Check if system urandom is initialized try: - os.getrandom(1, os.GRND_NONBLOCK) - state = 'ready (initialized)' - except BlockingIOError as exc: - state = 'not seeded yet (%s)' % exc - info_add('os.getrandom', state) + try: + os.getrandom(1, os.GRND_NONBLOCK) + state = 'ready (initialized)' + except BlockingIOError as exc: + state = 'not seeded yet (%s)' % exc + info_add('os.getrandom', state) + except OSError as exc: + # Python was compiled on a more recent Linux version + # than the current Linux kernel: ignore OSError(ENOSYS) + if exc.errno != errno.ENOSYS: + raise def collect_readline(info_add): -- cgit v0.12