Files
vagrant-libvirt/spec/acceptance/package_domain_spec.rb
Darragh Bailey 6bbde74be0 Ensure acceptance tests are executed (#1680)
Ensure the acceptance tests are actually executed and resolve any issues
that have crept in since they were not running as expected.

Call the ResolveDiskSettings on reload to ensure that the start domain
action will have all of the necessary configuration for any additional
storage disks added.

Tidy up create domain output when disks are attached.

Fixes: #1678
2022-11-23 17:33:10 +00:00

91 lines
3.2 KiB
Ruby

# frozen_string_literal: true
require_relative '../spec_helper'
describe 'package domain', acceptance: true do
include_context 'libvirt_acceptance'
before(:all) do
expect(Vagrant::Util::Which.which('virt-sysprep')).to be_truthy,
'packaging tests require virt-sysprep, please install'
expect(Vagrant::Util::Which.which('virt-sparsify')).to be_truthy,
'packaging tests require virt-sparsify, please install'
result = (File.exist?('C:\\') ? `dir /-C #{Dir.tmpdir}` : `df #{Dir.tmpdir}`).split("\n").last
expect(result.split[3].to_i).to be > 6 * 1024 * 1024,
"packaging tests require more than 6GiB of space under #{Dir.tmpdir}"
end
after(:each) do
assert_execute('vagrant', 'destroy', '--force')
end
let(:testbox_envvars) { { VAGRANT_VAGRANTFILE: 'Vagrantfile.testbox' } }
context 'simple' do
before do
environment.skeleton('package_simple')
end
after do
result = environment.execute('vagrant', 'destroy', '--force', extra_env: testbox_envvars)
expect(result).to exit_with(0)
assert_execute('vagrant', 'box', 'remove', '--force', 'test-package-simple-domain')
end
it 'should succeed' do
status('Test: machine is created successfully')
expect(environment.execute('vagrant', 'up')).to exit_with(0)
status('Test: package machine successfully')
expect(environment.execute('vagrant', 'package')).to exit_with(0)
status('Test: add packaged box')
expect(environment.execute(
'vagrant', 'box', 'add', '--force', '--name', 'test-package-simple-domain', 'package.box'
)).to exit_with(0)
status('Test: machine from packaged box is created successfully')
result = environment.execute('vagrant', 'up', extra_env: testbox_envvars)
expect(result).to exit_with(0)
expect(result.stdout).to match(/test-package-simple-domain/)
end
end
context 'complex' do
before do
environment.skeleton('package_complex')
extra_env.merge!(
{
VAGRANT_LIBVIRT_VIRT_SYSPREP_OPERATIONS: 'defaults,-ssh-userdir,customize',
VAGRANT_LIBVIRT_VIRT_SYSPREP_OPTIONS: '--run $(pwd)/scripts/sysprep.sh',
}
)
end
after do
expect(environment.execute('vagrant', 'destroy', '--force', extra_env: testbox_envvars)).to exit_with(0)
assert_execute('vagrant', 'box', 'remove', '--force', 'test-package-complex-domain')
end
it 'should succeed' do
status('Test: machine is created successfully')
expect(environment.execute('vagrant', 'up')).to exit_with(0)
status('Test: package machine successfully')
expect(environment.execute('vagrant', 'package')).to exit_with(0)
status('Test: add packaged box')
expect(environment.execute(
'vagrant', 'box', 'add', '--force', '--name', 'test-package-complex-domain', 'package.box'
)).to exit_with(0)
status('Test: machine from packaged box is created successfully')
result = environment.execute('vagrant', 'up', extra_env: testbox_envvars)
expect(result).to exit_with(0)
expect(result.stdout).to match(/test-package-complex-domain/)
end
end
end