Tidied up nbd init test
This commit is contained in:
@@ -28,21 +28,19 @@ module FlexNBD
|
|||||||
@sock.close
|
@sock.close
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def read_hello
|
||||||
|
timing_out(::FlexNBD::MS_HELLO_TIME_SECS,
|
||||||
|
'Timed out waiting for hello.') do
|
||||||
|
fail 'No hello.' unless (hello = @sock.read(152)) &&
|
||||||
|
hello.length == 152
|
||||||
|
|
||||||
def read_hello()
|
passwd_s = hello[0..7]
|
||||||
timing_out( ::FlexNBD::MS_HELLO_TIME_SECS,
|
magic = hello[8..15].unpack('Q>').first
|
||||||
"Timed out waiting for hello." ) do
|
size = hello[16..23].unpack('Q>').first
|
||||||
fail "No hello." unless (hello = @sock.read( 152 )) &&
|
flags = hello[24..27].unpack('L>').first
|
||||||
hello.length==152
|
reserved = hello[28..-1]
|
||||||
|
|
||||||
magic_s = hello[0..7]
|
return { passwd: passwd_s, magic: magic, size: size, flags: flags, reserved: reserved }
|
||||||
ignore_s= hello[8..15]
|
|
||||||
size_s = hello[16..23]
|
|
||||||
|
|
||||||
size_h, size_l = size_s.unpack("NN")
|
|
||||||
size = (size_h << 32) + size_l
|
|
||||||
|
|
||||||
return { :magic => magic_s, :size => size }
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@ module ProxyTests
|
|||||||
begin
|
begin
|
||||||
|
|
||||||
result = client.read_hello
|
result = client.read_hello
|
||||||
assert_equal "NBDMAGIC", result[:magic]
|
assert_equal "NBDMAGIC", result[:passwd]
|
||||||
assert_equal override_size || @env.file1.size, result[:size]
|
assert_equal override_size || @env.file1.size, result[:size]
|
||||||
|
|
||||||
yield client
|
yield client
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
require 'environment'
|
require 'environment'
|
||||||
require 'flexnbd/fake_source'
|
require 'flexnbd/fake_source'
|
||||||
|
require 'pp'
|
||||||
|
|
||||||
class TestServeMode < Test::Unit::TestCase
|
class TestServeMode < Test::Unit::TestCase
|
||||||
|
|
||||||
@@ -21,8 +22,11 @@ class TestServeMode < Test::Unit::TestCase
|
|||||||
client = FlexNBD::FakeSource.new(@env.ip, @env.port1, "Connecting to server failed")
|
client = FlexNBD::FakeSource.new(@env.ip, @env.port1, "Connecting to server failed")
|
||||||
begin
|
begin
|
||||||
result = client.read_hello
|
result = client.read_hello
|
||||||
assert_equal "NBDMAGIC", result[:magic]
|
assert_equal 'NBDMAGIC', result[:passwd]
|
||||||
|
assert_equal 0x00420281861253, result[:magic]
|
||||||
assert_equal @env.file1.size, result[:size]
|
assert_equal @env.file1.size, result[:size]
|
||||||
|
assert_equal 13, result[:flags]
|
||||||
|
assert_equal "\x0" * 124, result[:reserved]
|
||||||
yield client
|
yield client
|
||||||
ensure
|
ensure
|
||||||
client.close rescue nil
|
client.close rescue nil
|
||||||
|
Reference in New Issue
Block a user