From 8c884a2e8c37d5ec1dd91212607a74432c6b1a82 Mon Sep 17 00:00:00 2001 From: Fabio Rehm Date: Tue, 23 Apr 2013 08:03:29 -0300 Subject: [PATCH] `fork` + `exec` = `spawn` --- lib/vagrant-lxc/action/forward_ports.rb | 2 +- spec/unit/action/forward_ports_spec.rb | 4 ++-- spec/unit/support/unit_example_group.rb | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/vagrant-lxc/action/forward_ports.rb b/lib/vagrant-lxc/action/forward_ports.rb index ed1536a..df150c3 100644 --- a/lib/vagrant-lxc/action/forward_ports.rb +++ b/lib/vagrant-lxc/action/forward_ports.rb @@ -68,7 +68,7 @@ module Vagrant redir_cmd = "sudo redir --laddr=127.0.0.1 --lport=#{host} --cport=#{guest} --caddr=#{@container_ip} 2>/dev/null" @logger.debug "Forwarding port with `#{redir_cmd}`" - fork { exec redir_cmd } + spawn redir_cmd end def store_redir_pid(host_port, redir_pid) diff --git a/spec/unit/action/forward_ports_spec.rb b/spec/unit/action/forward_ports_spec.rb index ed2ab7b..4c31edc 100644 --- a/spec/unit/action/forward_ports_spec.rb +++ b/spec/unit/action/forward_ports_spec.rb @@ -22,14 +22,14 @@ describe Vagrant::LXC::Action::ForwardPorts do machine.stub(provider: provider, data_dir: data_dir) subject.stub(exec: true) - subject.stub(:fork) { |&block| block.call; pid } + subject.stub(spawn: pid) subject.call(env) end after { FileUtils.rm_rf data_dir.to_s } it 'forwards ports using redir' do - subject.should have_received(:exec).with( + subject.should have_received(:spawn).with( "sudo redir --laddr=127.0.0.1 --lport=#{host_port} --cport=#{guest_port} --caddr=#{container_ip} 2>/dev/null" ) end diff --git a/spec/unit/support/unit_example_group.rb b/spec/unit/support/unit_example_group.rb index 06a1e6f..bc390bc 100644 --- a/spec/unit/support/unit_example_group.rb +++ b/spec/unit/support/unit_example_group.rb @@ -14,6 +14,9 @@ module UnitExampleGroup Object.any_instance.stub(:fork) { |*args, &block| UnitExampleGroup.prevent_system_calls(*args, &block) } + Object.any_instance.stub(:spawn) { |*args, &block| + UnitExampleGroup.prevent_system_calls(*args, &block) + } require 'vagrant/util/subprocess' Vagrant::Util::Subprocess.stub(:execute) { |*args, &block| UnitExampleGroup.prevent_system_calls(*args, &block)