示例#1
0
def test_is_not_zero_head(buf):
    assert not ioutil.is_zero(buf)
示例#2
0
def test_is_zero_empty_buffer(buf):
    assert ioutil.is_zero(buffer(buf))
示例#3
0
def test_is_zero_empty_memoryview(buf):
    assert ioutil.is_zero(memoryview(buf))
示例#4
0
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)
示例#5
0
def test_is_not_zero_mmap(aligned_buffer):
    aligned_buffer[-1:] = b"x"
    assert not ioutil.is_zero(aligned_buffer)
示例#6
0
def test_is_zero_mmap(aligned_buffer):
    assert ioutil.is_zero(aligned_buffer)
示例#7
0
def test_is_not_zero_mmap(aligned_buffer):
    aligned_buffer[-1:] = b"x"
    assert not ioutil.is_zero(aligned_buffer)
示例#8
0
def test_is_not_zero(buf):
    assert not ioutil.is_zero(buf)
示例#9
0
def test_is_not_zero_buffer(buf):
    assert not ioutil.is_zero(buffer(buf))  # noqa: F821
示例#10
0
def test_is_zero_empty_memoryview(buf):
    assert ioutil.is_zero(memoryview(buf))
示例#11
0
def test_is_zero(buf):
    assert ioutil.is_zero(buf)
示例#12
0
def test_is_zero_empty_buffer(buf):
    assert ioutil.is_zero(buffer(buf))  # noqa: F821
示例#13
0
def test_is_not_zero_head_buffer(buf):
    assert not ioutil.is_zero(buffer(buf))
示例#14
0
def test_is_zero_buffer(buf):
    assert ioutil.is_zero(buffer(buf))
示例#15
0
def test_is_not_zero_buffer(buf):
    assert not ioutil.is_zero(buffer(buf))
示例#16
0
def test_is_not_zero_memoryview(buf):
    assert not ioutil.is_zero(memoryview(buf))
示例#17
0
def test_is_not_zero_memoryview(buf):
    assert not ioutil.is_zero(memoryview(buf))
示例#18
0
def test_is_zero_mmap(aligned_buffer):
    assert ioutil.is_zero(aligned_buffer)
示例#19
0
def test_is_not_zero_mmap_head(aligned_buffer):
    aligned_buffer[15:16] = b"x"
    assert not ioutil.is_zero(aligned_buffer)
示例#20
0
def test_is_not_zero_mmap_head(aligned_buffer):
    aligned_buffer[15:16] = b"x"
    assert not ioutil.is_zero(aligned_buffer)
示例#21
0
def test_is_zero_empty(buf):
    assert ioutil.is_zero(buf)
示例#22
0
文件: dd.py 项目: oVirt/ovirt-imageio
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,