Added basic FLUSH test

This commit is contained in:
Patrick J Cherry
2018-02-03 20:10:47 +00:00
parent d6057a4244
commit 4d9db4d6e9
2 changed files with 21 additions and 1 deletions

View File

@@ -53,6 +53,10 @@ module FlexNBD
def write_write_request(from, len, handle = 'myhandle') def write_write_request(from, len, handle = 'myhandle')
send_request(1, handle, from, len) send_request(1, handle, from, len)
end end
def write_flush_request(handle = 'myhandle')
send_request(3, handle, 0, 0)
end
def write_entrust_request(handle = 'myhandle') def write_entrust_request(handle = 'myhandle')
send_request(65_536, handle) send_request(65_536, handle)
@@ -95,6 +99,10 @@ module FlexNBD
write_data(data) write_data(data)
end end
def flush
write_flush_request
end
def read_response def read_response
magic = @sock.read(4) magic = @sock.read(4)
error_s = @sock.read(4) error_s = @sock.read(4)

View File

@@ -24,7 +24,9 @@ class TestServeMode < Test::Unit::TestCase
assert_equal 'NBDMAGIC', result[:passwd] assert_equal 'NBDMAGIC', result[:passwd]
assert_equal 0x00420281861253, result[:magic] assert_equal 0x00420281861253, result[:magic]
assert_equal @env.file1.size, result[:size] assert_equal @env.file1.size, result[:size]
assert_equal 13, result[:flags] # See src/common/nbdtypes.h for the various flags. At the moment we
# support HAS_FLAGS (1), SEND_FLUSH (4), SEND_FUA (8)
assert_equal (1 | 4 | 8), result[:flags]
assert_equal "\x0" * 124, result[:reserved] assert_equal "\x0" * 124, result[:reserved]
yield client yield client
ensure ensure
@@ -106,4 +108,14 @@ class TestServeMode < Test::Unit::TestCase
assert_equal FlexNBD::REPLY_MAGIC, rsp[:magic] assert_equal FlexNBD::REPLY_MAGIC, rsp[:magic]
end end
end end
def test_flush_is_accepted
connect_to_server do |client|
# Start with a file of all-zeroes.
client.flush
rsp = client.read_response
assert_equal FlexNBD::REPLY_MAGIC, rsp[:magic]
assert_equal 0, rsp[:error]
end
end
end end