def testSendfile3(self): fd = open(__file__) a, b = self._pair2() n = sendfile(fd.fileno(), a.fileno(), 0, 1) b.recv(1) b.close() try: n = sendfile(fd.fileno(), a.fileno(), 0, 1) except OSError, e: self.assertTrue(e.errno in (errno.ENOTCONN, errno.EPIPE)) # linux will throw EPIPE
def testSendfile1(self): fd = open(__file__) data = fd.read() a, b = self._pair2() n = sendfile(fd.fileno(), a.fileno(), 0, 42) self.assertEquals(n, 42) self.assertEquals(data[:42], b.recv(1024)) n = sendfile(fd.fileno(), b.fileno(), len(data) - 10, 42) self.assertEquals(n, 10) self.assertEquals(data[len(data) - 10:], a.recv(1024)) n = sendfile(fd.fileno(), b.fileno(), len(data), 42) self.assertEquals(n, 0) fd.close()
def testSendfileZero(self): a, b = self._pair2() fd = open(__file__) data = fd.read() n = sendfile(fd.fileno(), b.fileno(), 0, 0) self.assertTrue(n > 0) self.assertEquals(data[:n], a.recv(n + 1024))
def testSendfile4(self): fd = open(__file__) a, b = self._pair2() total = os.fstat(fd.fileno()).st_size while True: try: n = sendfile(fd.fileno(), a.fileno(), 0, total) self.assertTrue(n > 0) except OSError, e: self.assertEquals(e.errno, errno.EAGAIN) break
def testSendfileHeaders(self): fd = open(__file__) data = fd.read(10) dataM = 'XX' + data + 'YY' a, b = self._pair2() n = sendfile(fd.fileno(), a.fileno(), 0, 10, ['XX'], ['YY']) output = b.recv(1024) self.assertEquals(n, len(output)) self.assertEquals(n, len(dataM)) self.assertEquals(dataM, output)