diff --git a/tests/acceptance/environment.rb b/tests/acceptance/environment.rb index cba6cbf..a614066 100644 --- a/tests/acceptance/environment.rb +++ b/tests/acceptance/environment.rb @@ -6,10 +6,7 @@ class Environment :port1, :port2, :nbd1, :nbd2, :file1, :file2) def initialize - # Make sure we have a few pages of memory so we can test msync offsets - # NB If you change this, you need to match it in the flexnbd/fake_dest - # Flexnbd::FakeDest::Client#write_hello - @blocksize = Integer(`getconf PAGE_SIZE`) * 4 + @blocksize = 1024 @filename1 = "/tmp/.flexnbd.test.#{$PROCESS_ID}.#{Time.now.to_i}.1" @filename2 = "/tmp/.flexnbd.test.#{$PROCESS_ID}.#{Time.now.to_i}.2" @ip = '127.0.0.1' @@ -22,6 +19,11 @@ class Environment @fake_pid = nil end + def blocksize=(b) + raise RuntimeError, "Unable to change blocksize after files have been opened" if @file1 or @file2 + @blocksize = b + end + def prefetch_proxy! @nbd1.prefetch_proxy = true @nbd2.prefetch_proxy = true diff --git a/tests/acceptance/flexnbd/fake_dest.rb b/tests/acceptance/flexnbd/fake_dest.rb index 0b0e414..26d82bf 100644 --- a/tests/acceptance/flexnbd/fake_dest.rb +++ b/tests/acceptance/flexnbd/fake_dest.rb @@ -22,7 +22,7 @@ module FlexNBD if opts[:size] == :wrong write_rand(@sock, 8) else - @sock.write("\x00\x00\x00\x00\x00\x01\x00\x00") + @sock.write("\x00\x00\x00\x00\x00\x00\x10\x00") end @sock.write("\x00" * 128) diff --git a/tests/acceptance/test_serve_mode.rb b/tests/acceptance/test_serve_mode.rb index a422da1..462eb5b 100644 --- a/tests/acceptance/test_serve_mode.rb +++ b/tests/acceptance/test_serve_mode.rb @@ -119,6 +119,10 @@ class TestServeMode < Test::Unit::TestCase def test_write_with_fua_is_accepted page_size = Integer(`getconf PAGESIZE`) + @env = Environment.new + @env.blocksize = page_size * 10 + @env.writefile1('0') + @env.serve1 connect_to_server do |client| # Write somewhere in the third page pos = page_size * 3 + 100