diff options
Diffstat (limited to 'features/steps/packages.rb')
-rw-r--r-- | features/steps/packages.rb | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/features/steps/packages.rb b/features/steps/packages.rb index 2d349f0894..cd057bd5a1 100644 --- a/features/steps/packages.rb +++ b/features/steps/packages.rb @@ -27,13 +27,20 @@ end After("@apt") do remove_integration_test_apt_source + purge_chef_integration_debs + shell_out! "apt-get clean" +end + +Before('@dpkg') do + purge_chef_integration_debs end -Before('@dpkg,@apt') do +Before('@apt') do purge_chef_integration_debs + shell_out! "apt-get clean" end -After('@dpkg,@apt') do +After('@dpkg') do purge_chef_integration_debs end @@ -64,6 +71,13 @@ Given "the apt server is running" do apt_server.start end + + Chef::Log.debug "Waiting for apt server to start" + until tcp_test_port("localhost", 9000) do + Chef::Log.debug "." + sleep 1 + end + Chef::Log.debug "done" end Given "I have updated my apt cache" do @@ -119,3 +133,13 @@ Then "the dpkg package '$package_name' should be installed" do |package_name| dpkg_should_be_installed(package_name) end +def tcp_test_port(hostname, port) + tcp_socket = TCPSocket.new(hostname, port) + true +rescue Errno::ETIMEDOUT + false +rescue Errno::ECONNREFUSED + false +ensure + tcp_socket && tcp_socket.close +end |