]> granicus.if.org Git - python/commitdiff
pythoninfo: ignore OSError(ENOSYS) on getrandom() (#3655)
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 19 Sep 2017 14:37:24 +0000 (07:37 -0700)
committerGitHub <noreply@github.com>
Tue, 19 Sep 2017 14:37:24 +0000 (07:37 -0700)
Lib/test/pythoninfo.py

index 15cce34e822cfae8ffe04d9c7247227d503b38e3..5447ab8274b4e7d95eb4d04bf2c8a8350073d574 100644 (file)
@@ -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):