]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-33937: Catch ENOMEM error in test_socket (#9557)
authorVictor Stinner <vstinner@redhat.com>
Tue, 25 Sep 2018 15:30:15 +0000 (08:30 -0700)
committerGitHub <noreply@github.com>
Tue, 25 Sep 2018 15:30:15 +0000 (08:30 -0700)
Fix test_socket.SendmsgSCTPStreamTest: catch ENOMEM error.
testSendmsgTimeout() and testSendmsgDontWait() randomly fail on
Travis CI with: "OSError: [Errno 12] Cannot allocate memory".

Lib/test/test_socket.py

index f4d58ebf7157ba6ffe355a2b97fceb36db590c17..bd4fad1f638043234d8ae6c0cb337c5fd4156f64 100644 (file)
@@ -2616,9 +2616,18 @@ class SendmsgStreamTests(SendmsgTests):
     def _testSendmsgTimeout(self):
         try:
             self.cli_sock.settimeout(0.03)
-            with self.assertRaises(socket.timeout):
+            try:
                 while True:
                     self.sendmsgToServer([b"a"*512])
+            except socket.timeout:
+                pass
+            except OSError as exc:
+                if exc.errno != errno.ENOMEM:
+                    raise
+                # bpo-33937 the test randomly fails on Travis CI with
+                # "OSError: [Errno 12] Cannot allocate memory"
+            else:
+                self.fail("socket.timeout not raised")
         finally:
             self.misc_event.set()
 
@@ -2641,8 +2650,10 @@ class SendmsgStreamTests(SendmsgTests):
             with self.assertRaises(OSError) as cm:
                 while True:
                     self.sendmsgToServer([b"a"*512], [], socket.MSG_DONTWAIT)
+            # bpo-33937: catch also ENOMEM, the test randomly fails on Travis CI
+            # with "OSError: [Errno 12] Cannot allocate memory"
             self.assertIn(cm.exception.errno,
-                          (errno.EAGAIN, errno.EWOULDBLOCK))
+                          (errno.EAGAIN, errno.EWOULDBLOCK, errno.ENOMEM))
         finally:
             self.misc_event.set()