From d981dde8d1ceed3e14e9b8cdd706a084986adb61 Mon Sep 17 00:00:00 2001 From: Matthew Bloch Date: Wed, 6 Jun 2012 01:28:30 +0100 Subject: [PATCH] Fixed FlexNBD#serve parameters, added detection of non-starting server. --- tests/flexnbd.rb | 23 ++++++++++++++--------- tests/nbd_scenarios | 3 +-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/flexnbd.rb b/tests/flexnbd.rb index 8ffb4b7..3864c60 100644 --- a/tests/flexnbd.rb +++ b/tests/flexnbd.rb @@ -16,19 +16,24 @@ class FlexNBD @port = port end - def serve(ip, port, file, *acl) + def serve(file, *acl) File.unlink(ctrl) if File.exists?(ctrl) + cmd ="#{@bin} serve "\ + "--addr #{ip} "\ + "--port #{port} "\ + "--file #{file} "\ + "--sock #{ctrl} "\ + "#{@debug} "\ + "#{acl.join(' ')}" @pid = fork do - cmd ="#{@bin} serve "\ - "--addr #{ip} "\ - "--port #{port} "\ - "--file #{file} "\ - "--sock #{ctrl} "\ - "#{@debug} "\ - "#{acl.join(' ')}" exec(cmd) end - sleep 0.1 until File.socket?(ctrl) + while !File.socket?(ctrl) + pid, status = Process.wait2(@pid, Process::WNOHANG) + raise "server did not start (#{cmd})" if pid + sleep 0.1 + end + at_exit { kill } end def kill diff --git a/tests/nbd_scenarios b/tests/nbd_scenarios index 7392112..be58cfe 100644 --- a/tests/nbd_scenarios +++ b/tests/nbd_scenarios @@ -17,7 +17,6 @@ class NBDScenarios < Test::Unit::TestCase end def teardown - @nbd1.kill rescue nil [@filename1, @filename2].each do |f| File.unlink(f) if File.exists?(f) end @@ -73,7 +72,7 @@ class NBDScenarios < Test::Unit::TestCase protected def serve1(*acl) - @nbd1.serve(@ip, @port1, @filename1, *acl) + @nbd1.serve(@filename1, *acl) end def writefile1(data)