def testMsgWaitallProblems2(self): class ReceiveThread(threadutil.Thread): def __init__(self, sock, sizes): super(ReceiveThread, self).__init__() self.sock = sock self.sizes = sizes def run(self): cs, _ = self.sock.accept() for size in self.sizes: data = SU.receiveData(cs, size) SU.sendData(cs, data) cs.close() ss = SU.createSocket(bind=("localhost", 0)) SIZES = [ 1000, 10000, 32000, 32768, 32780, 41950, 41952, 42000, 65000, 65535, 65600, 80000, 999999 ] serverthread = ReceiveThread(ss, SIZES) serverthread.setDaemon(True) serverthread.start() port = ss.getsockname()[1] cs = SU.createSocket(connect=("localhost", port), timeout=2) # test some sizes that might be problematic with MSG_WAITALL and check that they work fine for size in SIZES: SU.sendData(cs, tobytes("x") * size) data = SU.receiveData(cs, size) self.assertEqual(size, len(data)) serverthread.join() ss.close() cs.close()
def testMsgWaitallProblems2(self): class ReceiveThread(threadutil.Thread): def __init__(self, sock, sizes): super(ReceiveThread,self).__init__() self.sock=sock self.sizes=sizes def run(self): cs,_ = self.sock.accept() for size in self.sizes: data=SU.receiveData(cs,size) SU.sendData(cs, data) cs.close() ss=SU.createSocket(bind=("localhost",0)) SIZES=[1000,10000,32000,32768,32780,41950,41952,42000,65000,65535,65600,80000,999999] serverthread=ReceiveThread(ss, SIZES) serverthread.setDaemon(True) serverthread.start() port=ss.getsockname()[1] cs=SU.createSocket(connect=("localhost",port), timeout=2) # test some sizes that might be problematic with MSG_WAITALL for size in SIZES: SU.sendData(cs,tobytes("x")*size) data=SU.receiveData(cs,size) self.assertEqual(size, len(data)) serverthread.join() ss.close() cs.close()
def testSend(self): ss=SU.createSocket(bind=("localhost",0)) port=ss.getsockname()[1] cs=SU.createSocket(connect=("localhost",port)) SU.sendData(cs,tobytes("foobar!")*10) cs.shutdown(socket.SHUT_WR) a=ss.accept() data=SU.receiveData(a[0], 5) self.assertEqual(tobytes("fooba"),data) data=SU.receiveData(a[0], 5) self.assertEqual(tobytes("r!foo"),data) a[0].close() ss.close() cs.close()
def testSend(self): ss = SU.createSocket(bind=("localhost", 0)) port = ss.getsockname()[1] cs = SU.createSocket(connect=("localhost", port)) SU.sendData(cs, tobytes("foobar!") * 10) cs.shutdown(socket.SHUT_WR) a = ss.accept() data = SU.receiveData(a[0], 5) self.assertEqual(tobytes("fooba"), data) data = SU.receiveData(a[0], 5) self.assertEqual(tobytes("r!foo"), data) a[0].close() ss.close() cs.close()
def testMsgWaitallProblems(self): ss=SU.createSocket(bind=("localhost",0), timeout=2) port=ss.getsockname()[1] cs=SU.createSocket(connect=("localhost",port), timeout=2) a=ss.accept() # test some sizes that might be problematic with MSG_WAITALL for size in [1000,10000,32000,32768,32780,41950,41952,42000,65000,65535,65600,80000]: SU.sendData(cs,tobytes("x")*size) data=SU.receiveData(a[0],size) SU.sendData(a[0], data) data=SU.receiveData(cs,size) self.assertEqual(size, len(data)) a[0].close() ss.close() cs.close()
def testSendUnix(self): SOCKNAME="test_unixsocket" ss=SU.createSocket(bind=SOCKNAME) cs=SU.createSocket(connect=SOCKNAME) SU.sendData(cs,tobytes("foobar!")*10) cs.shutdown(socket.SHUT_WR) a=ss.accept() data=SU.receiveData(a[0], 5) self.assertEqual(tobytes("fooba"),data) data=SU.receiveData(a[0], 5) self.assertEqual(tobytes("r!foo"),data) a[0].close() ss.close() cs.close() if os.path.exists(SOCKNAME): os.remove(SOCKNAME)
def testMsgWaitallProblems(self): ss = SU.createSocket(bind=("localhost", 0), timeout=2) port = ss.getsockname()[1] cs = SU.createSocket(connect=("localhost", port), timeout=2) a = ss.accept() # test some sizes that might be problematic with MSG_WAITALL and check that they work fine for size in [1000, 10000, 32000, 32768, 32780, 41950, 41952, 42000, 65000, 65535, 65600, 80000]: SU.sendData(cs, tobytes("x") * size) data = SU.receiveData(a[0], size) SU.sendData(a[0], data) data = SU.receiveData(cs, size) self.assertEqual(size, len(data)) a[0].close() ss.close() cs.close()
def testSendUnix(self): SOCKNAME = "test_unixsocket" ss = SU.createSocket(bind=SOCKNAME) cs = SU.createSocket(connect=SOCKNAME) SU.sendData(cs, tobytes("foobar!") * 10) cs.shutdown(socket.SHUT_WR) a = ss.accept() data = SU.receiveData(a[0], 5) self.assertEqual(tobytes("fooba"), data) data = SU.receiveData(a[0], 5) self.assertEqual(tobytes("r!foo"), data) a[0].close() ss.close() cs.close() if os.path.exists(SOCKNAME): os.remove(SOCKNAME)
def run(self): cs,_ = self.sock.accept() for size in self.sizes: data=SU.receiveData(cs,size) SU.sendData(cs, data) cs.close()
def run(self): cs, _ = self.sock.accept() for size in self.sizes: data = SU.receiveData(cs, size) SU.sendData(cs, data) cs.close()