Python test.support.SOCK_MAX_SIZE Examples
The following are 10
code examples of test.support.SOCK_MAX_SIZE().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
test.support
, or try the search function
.
Example #1
Source File: test_socket.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def _testWriteNonBlocking(self): self.serv_skipped = None self.serv_conn.setblocking(False) # Try to saturate the socket buffer pipe with repeated large writes. BIG = b"x" * support.SOCK_MAX_SIZE LIMIT = 10 # The first write() succeeds since a chunk of data can be buffered n = self.write_file.write(BIG) self.assertGreater(n, 0) for i in range(LIMIT): n = self.write_file.write(BIG) if n is None: # Succeeded break self.assertGreater(n, 0) else: # Let us know that this test didn't manage to establish # the expected conditions. This is not a failure in itself but, # if it happens repeatedly, the test should be fixed. self.serv_skipped = "failed to saturate the socket buffer"
Example #2
Source File: test_socket.py From ironpython3 with Apache License 2.0 | 6 votes |
def _testWriteNonBlocking(self): self.serv_skipped = None self.serv_conn.setblocking(False) # Try to saturate the socket buffer pipe with repeated large writes. BIG = b"x" * support.SOCK_MAX_SIZE LIMIT = 10 # The first write() succeeds since a chunk of data can be buffered n = self.write_file.write(BIG) self.assertGreater(n, 0) for i in range(LIMIT): n = self.write_file.write(BIG) if n is None: # Succeeded break self.assertGreater(n, 0) else: # Let us know that this test didn't manage to establish # the expected conditions. This is not a failure in itself but, # if it happens repeatedly, the test should be fixed. self.serv_skipped = "failed to saturate the socket buffer"
Example #3
Source File: test_socket.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def _testWriteNonBlocking(self): self.serv_skipped = None self.serv_conn.setblocking(False) # Try to saturate the socket buffer pipe with repeated large writes. BIG = b"x" * support.SOCK_MAX_SIZE LIMIT = 10 # The first write() succeeds since a chunk of data can be buffered n = self.write_file.write(BIG) self.assertGreater(n, 0) for i in range(LIMIT): n = self.write_file.write(BIG) if n is None: # Succeeded break self.assertGreater(n, 0) else: # Let us know that this test didn't manage to establish # the expected conditions. This is not a failure in itself but, # if it happens repeatedly, the test should be fixed. self.serv_skipped = "failed to saturate the socket buffer"
Example #4
Source File: test_socket.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def check_sendall_interrupted(self, with_timeout): # socketpair() is not stricly required, but it makes things easier. if not hasattr(signal, 'alarm') or not hasattr(socket, 'socketpair'): self.skipTest("signal.alarm and socket.socketpair required for this test") # Our signal handlers clobber the C errno by calling a math function # with an invalid domain value. def ok_handler(*args): self.assertRaises(ValueError, math.acosh, 0) def raising_handler(*args): self.assertRaises(ValueError, math.acosh, 0) 1 // 0 c, s = socket.socketpair() old_alarm = signal.signal(signal.SIGALRM, raising_handler) try: if with_timeout: # Just above the one second minimum for signal.alarm c.settimeout(1.5) with self.assertRaises(ZeroDivisionError): signal.alarm(1) c.sendall(b"x" * support.SOCK_MAX_SIZE) if with_timeout: signal.signal(signal.SIGALRM, ok_handler) signal.alarm(1) self.assertRaises(socket.timeout, c.sendall, b"x" * support.SOCK_MAX_SIZE) finally: signal.alarm(0) signal.signal(signal.SIGALRM, old_alarm) c.close() s.close()
Example #5
Source File: test_socket.py From ironpython3 with Apache License 2.0 | 5 votes |
def check_sendall_interrupted(self, with_timeout): # socketpair() is not stricly required, but it makes things easier. if not hasattr(signal, 'alarm') or not hasattr(socket, 'socketpair'): self.skipTest("signal.alarm and socket.socketpair required for this test") # Our signal handlers clobber the C errno by calling a math function # with an invalid domain value. def ok_handler(*args): self.assertRaises(ValueError, math.acosh, 0) def raising_handler(*args): self.assertRaises(ValueError, math.acosh, 0) 1 // 0 c, s = socket.socketpair() old_alarm = signal.signal(signal.SIGALRM, raising_handler) try: if with_timeout: # Just above the one second minimum for signal.alarm c.settimeout(1.5) with self.assertRaises(ZeroDivisionError): signal.alarm(1) c.sendall(b"x" * support.SOCK_MAX_SIZE) if with_timeout: signal.signal(signal.SIGALRM, ok_handler) signal.alarm(1) self.assertRaises(socket.timeout, c.sendall, b"x" * support.SOCK_MAX_SIZE) finally: signal.alarm(0) signal.signal(signal.SIGALRM, old_alarm) c.close() s.close()
Example #6
Source File: test_socket.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def check_sendall_interrupted(self, with_timeout): # socketpair() is not strictly required, but it makes things easier. if not hasattr(signal, 'alarm') or not hasattr(socket, 'socketpair'): self.skipTest("signal.alarm and socket.socketpair required for this test") # Our signal handlers clobber the C errno by calling a math function # with an invalid domain value. def ok_handler(*args): self.assertRaises(ValueError, math.acosh, 0) def raising_handler(*args): self.assertRaises(ValueError, math.acosh, 0) 1 // 0 c, s = socket.socketpair() old_alarm = signal.signal(signal.SIGALRM, raising_handler) try: if with_timeout: # Just above the one second minimum for signal.alarm c.settimeout(1.5) with self.assertRaises(ZeroDivisionError): signal.alarm(1) c.sendall(b"x" * support.SOCK_MAX_SIZE) if with_timeout: signal.signal(signal.SIGALRM, ok_handler) signal.alarm(1) self.assertRaises(socket.timeout, c.sendall, b"x" * support.SOCK_MAX_SIZE) finally: signal.alarm(0) signal.signal(signal.SIGALRM, old_alarm) c.close() s.close()
Example #7
Source File: eintr_tester.py From Fluid-Designer with GNU General Public License v3.0 | 4 votes |
def _test_send(self, send_func): rd, wr = socket.socketpair() self.addCleanup(wr.close) # rd closed explicitly by parent # we must send enough data for the send() to block data = b"xyz" * (support.SOCK_MAX_SIZE // 3) code = '\n'.join(( 'import os, socket, sys, time', '', 'fd = int(sys.argv[1])', 'family = %s' % int(rd.family), 'sock_type = %s' % int(rd.type), 'sleep_time = %r' % self.sleep_time, 'data = b"xyz" * %s' % (support.SOCK_MAX_SIZE // 3), 'data_len = len(data)', '', 'rd = socket.fromfd(fd, family, sock_type)', 'os.close(fd)', '', 'with rd:', ' # let the parent block on send()', ' time.sleep(sleep_time)', '', ' received_data = bytearray(data_len)', ' n = 0', ' while n < data_len:', ' n += rd.recv_into(memoryview(received_data)[n:])', '', 'if received_data != data:', ' raise Exception("recv error: %s vs %s bytes"', ' % (len(received_data), data_len))', )) fd = rd.fileno() proc = self.subprocess(code, str(fd), pass_fds=[fd]) with kill_on_error(proc): rd.close() written = 0 while written < len(data): sent = send_func(wr, memoryview(data)[written:]) # sendall() returns None written += len(data) if sent is None else sent self.assertEqual(proc.wait(), 0)
Example #8
Source File: eintr_tester.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 4 votes |
def _test_send(self, send_func): rd, wr = socket.socketpair() self.addCleanup(wr.close) # rd closed explicitly by parent # we must send enough data for the send() to block data = b"xyz" * (support.SOCK_MAX_SIZE // 3) code = '\n'.join(( 'import os, socket, sys, time', '', 'fd = int(sys.argv[1])', 'family = %s' % int(rd.family), 'sock_type = %s' % int(rd.type), 'sleep_time = %r' % self.sleep_time, 'data = b"xyz" * %s' % (support.SOCK_MAX_SIZE // 3), 'data_len = len(data)', '', 'rd = socket.fromfd(fd, family, sock_type)', 'os.close(fd)', '', 'with rd:', ' # let the parent block on send()', ' time.sleep(sleep_time)', '', ' received_data = bytearray(data_len)', ' n = 0', ' while n < data_len:', ' n += rd.recv_into(memoryview(received_data)[n:])', '', 'if received_data != data:', ' raise Exception("recv error: %s vs %s bytes"', ' % (len(received_data), data_len))', )) fd = rd.fileno() proc = self.subprocess(code, str(fd), pass_fds=[fd]) with kill_on_error(proc): rd.close() written = 0 while written < len(data): sent = send_func(wr, memoryview(data)[written:]) # sendall() returns None written += len(data) if sent is None else sent self.assertEqual(proc.wait(), 0)
Example #9
Source File: test_wsgiref.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 4 votes |
def test_interrupted_write(self): # BaseHandler._write() and _flush() have to write all data, even if # it takes multiple send() calls. Test this by interrupting a send() # call with a Unix signal. threading = support.import_module("threading") pthread_kill = support.get_attribute(signal, "pthread_kill") def app(environ, start_response): start_response("200 OK", []) return [bytes(support.SOCK_MAX_SIZE)] class WsgiHandler(NoLogRequestHandler, WSGIRequestHandler): pass server = make_server(support.HOST, 0, app, handler_class=WsgiHandler) self.addCleanup(server.server_close) interrupted = threading.Event() def signal_handler(signum, frame): interrupted.set() original = signal.signal(signal.SIGUSR1, signal_handler) self.addCleanup(signal.signal, signal.SIGUSR1, original) received = None main_thread = threading.get_ident() def run_client(): http = HTTPConnection(*server.server_address) http.request("GET", "/") with http.getresponse() as response: response.read(100) # The main thread should now be blocking in a send() system # call. But in theory, it could get interrupted by other # signals, and then retried. So keep sending the signal in a # loop, in case an earlier signal happens to be delivered at # an inconvenient moment. while True: pthread_kill(main_thread, signal.SIGUSR1) if interrupted.wait(timeout=float(1)): break nonlocal received received = len(response.read()) http.close() background = threading.Thread(target=run_client) background.start() server.handle_request() background.join() self.assertEqual(received, support.SOCK_MAX_SIZE - 100)
Example #10
Source File: eintr_tester.py From android_universal with MIT License | 4 votes |
def _test_send(self, send_func): rd, wr = socket.socketpair() self.addCleanup(wr.close) # rd closed explicitly by parent # we must send enough data for the send() to block data = b"xyz" * (support.SOCK_MAX_SIZE // 3) code = '\n'.join(( 'import os, socket, sys, time', '', 'fd = int(sys.argv[1])', 'family = %s' % int(rd.family), 'sock_type = %s' % int(rd.type), 'sleep_time = %r' % self.sleep_time, 'data = b"xyz" * %s' % (support.SOCK_MAX_SIZE // 3), 'data_len = len(data)', '', 'rd = socket.fromfd(fd, family, sock_type)', 'os.close(fd)', '', 'with rd:', ' # let the parent block on send()', ' time.sleep(sleep_time)', '', ' received_data = bytearray(data_len)', ' n = 0', ' while n < data_len:', ' n += rd.recv_into(memoryview(received_data)[n:])', '', 'if received_data != data:', ' raise Exception("recv error: %s vs %s bytes"', ' % (len(received_data), data_len))', )) fd = rd.fileno() proc = self.subprocess(code, str(fd), pass_fds=[fd]) with kill_on_error(proc): rd.close() written = 0 while written < len(data): sent = send_func(wr, memoryview(data)[written:]) # sendall() returns None written += len(data) if sent is None else sent self.assertEqual(proc.wait(), 0)