mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-100218: correctly set errno when socket.if_{nametoindex,indextoname} raise OSError (#140905)
Previously, socket.if_nametoindex() and socket.if_indextoname() could raise an `OSError` with a `None` errno. Now, the errno from libc is propagated.
This commit is contained in:
parent
0c77e7c23b
commit
3ce2d57b2f
3 changed files with 14 additions and 4 deletions
|
|
@ -1176,7 +1176,10 @@ def testInterfaceNameIndex(self):
|
|||
'socket.if_indextoname() not available.')
|
||||
@support.skip_android_selinux('if_indextoname')
|
||||
def testInvalidInterfaceIndexToName(self):
|
||||
self.assertRaises(OSError, socket.if_indextoname, 0)
|
||||
with self.assertRaises(OSError) as cm:
|
||||
socket.if_indextoname(0)
|
||||
self.assertIsNotNone(cm.exception.errno)
|
||||
|
||||
self.assertRaises(ValueError, socket.if_indextoname, -1)
|
||||
self.assertRaises(OverflowError, socket.if_indextoname, 2**1000)
|
||||
self.assertRaises(TypeError, socket.if_indextoname, '_DEADBEEF')
|
||||
|
|
@ -1196,8 +1199,11 @@ def testInvalidInterfaceIndexToName(self):
|
|||
'socket.if_nametoindex() not available.')
|
||||
@support.skip_android_selinux('if_nametoindex')
|
||||
def testInvalidInterfaceNameToIndex(self):
|
||||
with self.assertRaises(OSError) as cm:
|
||||
socket.if_nametoindex("_DEADBEEF")
|
||||
self.assertIsNotNone(cm.exception.errno)
|
||||
|
||||
self.assertRaises(TypeError, socket.if_nametoindex, 0)
|
||||
self.assertRaises(OSError, socket.if_nametoindex, '_DEADBEEF')
|
||||
|
||||
@unittest.skipUnless(hasattr(sys, 'getrefcount'),
|
||||
'test needs sys.getrefcount()')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue