mirror of
https://github.com/vagrant-libvirt/vagrant-libvirt.git
synced 2025-02-25 18:55:27 -06:00
91 lines
3.2 KiB
Ruby
91 lines
3.2 KiB
Ruby
|
|
# frozen_string_literal: true
|
||
|
|
|
||
|
|
require '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-complex-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
|