guests/freebsd: Add tests to halt capability

This commit is contained in:
Seth Vargo 2016-06-05 13:23:06 -04:00
parent 2b08151977
commit 7806223020
No known key found for this signature in database
GPG Key ID: 905A90C2949E8787
2 changed files with 36 additions and 1 deletions

View File

@ -4,7 +4,7 @@ module VagrantPlugins
class Halt class Halt
def self.halt(machine) def self.halt(machine)
begin begin
machine.communicate.sudo("shutdown -p now", {shell: "sh"}) machine.communicate.sudo("shutdown -p now", { shell: "sh" })
rescue IOError rescue IOError
# Do nothing because SSH connection closed and it probably # Do nothing because SSH connection closed and it probably
# means the VM just shut down really fast. # means the VM just shut down really fast.

View File

@ -0,0 +1,35 @@
require_relative "../../../../base"
describe "VagrantPlugins::GuestFreeBSD::Cap::Halt" do
let(:described_class) do
VagrantPlugins::GuestFreeBSD::Plugin
.components
.guest_capabilities[:freebsd]
.get(:halt)
end
let(:machine) { double("machine") }
let(:comm) { VagrantTests::DummyCommunicator::Communicator.new(machine) }
before do
allow(machine).to receive(:communicate).and_return(comm)
end
after do
comm.verify_expectations!
end
describe ".halt" do
it "runs the shutdown command" do
comm.expect_command("shutdown -p now")
described_class.halt(machine)
end
it "does not raise an IOError" do
comm.stub_command("shutdown -p now", raise: IOError)
expect {
described_class.halt(machine)
}.to_not raise_error
end
end
end