def test_is_not_zero_head(buf): assert not ioutil.is_zero(buf)
def test_is_zero_empty_buffer(buf): assert ioutil.is_zero(buffer(buf))
def test_is_zero_empty_memoryview(buf): assert ioutil.is_zero(memoryview(buf))
start = time.time() buf = mmap.mmap(-1, args.blocksize) with closing(buf), \ directio.open(args.input, "r", direct=args.direct_input) as src, \ directio.open(args.output, "w", direct=args.direct_output) as dst: try: dst.truncate(args.size) except EnvironmentError as e: if e.errno != errno.EINVAL: raise pos = 0 while pos < args.size: n = src.readinto(buf) n = min(n, args.size - pos) if ioutil.is_zero(buffer(buf, 0, n)): dst.seek(n, os.SEEK_CUR) else: written = 0 while written < n: wbuf = buffer(buf, written, n - written) written += dst.write(wbuf) pos += n dst.flush() elapsed = time.time() - start print "Copied %.2f GiB, in %.3f seconds (%.2f MiB/s)" % ( float(pos) / 1024**3, elapsed, float(pos) / 1024**2 / elapsed)
def test_is_not_zero_mmap(aligned_buffer): aligned_buffer[-1:] = b"x" assert not ioutil.is_zero(aligned_buffer)
def test_is_zero_mmap(aligned_buffer): assert ioutil.is_zero(aligned_buffer)
def test_is_not_zero(buf): assert not ioutil.is_zero(buf)
def test_is_not_zero_buffer(buf): assert not ioutil.is_zero(buffer(buf)) # noqa: F821
def test_is_zero(buf): assert ioutil.is_zero(buf)
def test_is_zero_empty_buffer(buf): assert ioutil.is_zero(buffer(buf)) # noqa: F821
def test_is_not_zero_head_buffer(buf): assert not ioutil.is_zero(buffer(buf))
def test_is_zero_buffer(buf): assert ioutil.is_zero(buffer(buf))
def test_is_not_zero_buffer(buf): assert not ioutil.is_zero(buffer(buf))
def test_is_not_zero_memoryview(buf): assert not ioutil.is_zero(memoryview(buf))
def test_is_not_zero_mmap_head(aligned_buffer): aligned_buffer[15:16] = b"x" assert not ioutil.is_zero(aligned_buffer)
def test_is_zero_empty(buf): assert ioutil.is_zero(buf)
start = time.time() buf = mmap.mmap(-1, args.blocksize) with closing(buf), \ file.open(args.input, "r", direct=args.direct_input) as src, \ file.open(args.output, "w", direct=args.direct_output) as dst: try: dst.truncate(args.size) except EnvironmentError as e: if e.errno != errno.EINVAL: raise pos = 0 while pos < args.size: n = src.readinto(buf) n = min(n, args.size - pos) if ioutil.is_zero(buffer(buf, 0, n)): dst.seek(n, os.SEEK_CUR) else: written = 0 while written < n: wbuf = buffer(buf, written, n - written) written += dst.write(wbuf) pos += n dst.flush() elapsed = time.time() - start print "Copied %.2f GiB, in %.3f seconds (%.2f MiB/s)" % ( float(pos) / 1024**3, elapsed,