5a3a6fb942
This splits out the lorax-composer specific execution so that the built
image can be downloaded from the build vm and booted by the host instead
of using nested virt to try and boot it inside the build vm.
Also adds copying the ssh key from the build vm so that it can log into
the image and run the test_boot_* scripts.
Cherry-picked from df7a018ee2
Related: rhbz#1769525
86 lines
2.8 KiB
Python
Executable File
86 lines
2.8 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import tempfile
|
|
import unittest
|
|
|
|
import composertest
|
|
|
|
|
|
class TestImages(composertest.ComposerTestCase):
|
|
"""
|
|
This is the "entry-point" to the test suite when
|
|
executed in Cockpit CI. If $TEST_SCENARIO=="" or
|
|
$TEST_SCENARIO="images" we end up here.
|
|
|
|
New test methods should be added here first!
|
|
When this target becomes too slow we split out into
|
|
separate scenarios!
|
|
"""
|
|
def test_blueprint_sanity(self):
|
|
self.runCliTest("/tests/cli/test_blueprints_sanity.sh")
|
|
|
|
def test_compose_sanity(self):
|
|
self.runCliTest("/tests/cli/test_compose_sanity.sh")
|
|
|
|
def test_ext4_filesystem(self):
|
|
self.runCliTest("/tests/cli/test_compose_ext4-filesystem.sh")
|
|
|
|
def test_partitioned_disk(self):
|
|
self.runCliTest("/tests/cli/test_compose_partitioned-disk.sh")
|
|
|
|
|
|
@unittest.skip('Nested KVM seems to be buggy and software emulation is too slow')
|
|
class TestQcow2(composertest.ComposerTestCase):
|
|
def tearDown(self):
|
|
super().tearDownTestMachine()
|
|
|
|
def test_qcow2(self):
|
|
self.runCliTest("/tests/cli/test_compose_qcow2.sh")
|
|
|
|
with tempfile.TemporaryDirectory(prefix="/var/tmp/lorax-test.") as tmpdir:
|
|
# Copy the resulting qcow2 image and shut down the VM
|
|
self.tearDownVirt(virt_dir="/var/tmp/test-results/*", local_dir=tmpdir)
|
|
|
|
# Boot the image
|
|
self.setUpTestMachine(tmpdir + "/disk.qcow2", tmpdir + "/id_rsa")
|
|
|
|
# Upload the contents of the ./tests/ directory to the machine
|
|
self.machine.upload(["../tests"], "/")
|
|
|
|
# Run the test, on the booted image
|
|
self.runImageTest("/tests/cli/test_boot_qcow2.sh")
|
|
|
|
|
|
@unittest.skip('Nested KVM seems to be buggy and software emulation is too slow')
|
|
class TestLiveIso(composertest.ComposerTestCase):
|
|
def tearDown(self):
|
|
super().tearDownTestMachine()
|
|
|
|
def test_live_iso(self):
|
|
self.runCliTest("/tests/cli/test_compose_live-iso.sh")
|
|
|
|
with tempfile.TemporaryDirectory(prefix="/var/tmp/lorax-test.") as tmpdir:
|
|
# Copy the resulting iso and shut down the VM
|
|
self.tearDownVirt(virt_dir="/var/tmp/test-results/*", local_dir=tmpdir)
|
|
|
|
# Boot the image
|
|
self.setUpTestMachine(tmpdir + "/live.iso")
|
|
|
|
# Upload the contents of the ./tests/ directory to the machine
|
|
self.machine.upload(["../tests"], "/")
|
|
|
|
# Run the test, on the booted image
|
|
self.runImageTest("/tests/cli/test_boot_live-iso.sh")
|
|
|
|
|
|
class TestTar(composertest.ComposerTestCase):
|
|
def test_tar(self):
|
|
self.runCliTest("/tests/cli/test_compose_tar.sh")
|
|
|
|
def test_tar_kickstart(self):
|
|
self.runCliTest("/tests/cli/test_compose_tar_kickstart.sh")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
composertest.main()
|