vaguerent/test/unit/base.rb
Chris Roberts 672a408dbc Isolate protobuf message loading to server mode
Prevent protobuf loading when not in server mode. This allows proper
loading on platforms which don't have support for the protobuf
libraries.
2022-12-16 16:21:06 -08:00

76 lines
2.0 KiB
Ruby

require "tmpdir"
require "rubygems"
# Gems
require "checkpoint"
require "rspec/its"
# Require Vagrant itself so we can reference the proper
# classes to test.
require "vagrant"
require "vagrant/util/platform"
# Include patches for fake ftp
require "vagrant/patches/fake_ftp"
# Be sure our proto messages are available
Vagrant.load_vagrant_proto!
# Add the test directory to the load path
$:.unshift File.expand_path("../../", __FILE__)
# Load in helpers
require "unit/support/dummy_communicator"
require "unit/support/dummy_provider"
require "unit/support/shared/base_context"
require "unit/support/shared/action_synced_folders_context"
require "unit/support/shared/capability_helpers_context"
require "unit/support/shared/plugin_command_context"
require "unit/support/shared/virtualbox_context"
# Do not buffer output
$stdout.sync = true
$stderr.sync = true
# Create a temporary directory where test vagrant will run. The reason we save
# this to a constant is so we can clean it up later.
VAGRANT_TEST_CWD = Dir.mktmpdir("vagrant-test-cwd")
# Configure RSpec
RSpec.configure do |c|
#c.formatter = :progress
c.color_mode = :on
if Vagrant::Util::Platform.windows?
c.filter_run_excluding :skip_windows
else
c.filter_run_excluding :windows
end
if !Vagrant::Util::Which.which("bsdtar")
c.filter_run_excluding :bsdtar
end
c.after(:suite) do
FileUtils.rm_rf(VAGRANT_TEST_CWD)
end
end
# Configure VAGRANT_CWD so that the tests never find an actual
# Vagrantfile anywhere, or at least this minimizes those chances.
ENV["VAGRANT_CWD"] = VAGRANT_TEST_CWD
# Set the dummy provider to the default for tests
ENV["VAGRANT_DEFAULT_PROVIDER"] = "dummy"
# Unset all host plugins so that we aren't executing subprocess things
# to detect a host for every test.
Vagrant.plugin("2").manager.registered.dup.each do |plugin|
if plugin.components.hosts.to_hash.length > 0
Vagrant.plugin("2").manager.unregister(plugin)
end
end
# Disable checkpoint
Checkpoint.disable!