diff options
author | Jonathan Bauer | 2021-06-25 14:55:08 +0200 |
---|---|---|
committer | Jonathan Bauer | 2021-06-25 14:55:08 +0200 |
commit | 09f9b20ae36bbbff9e303c52d2a8f2a034cd4f1e (patch) | |
tree | 75f018f5ad995d286de930f0a0c450ab8a208f4b /core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitectureTest.java | |
parent | Merge branch 'master' into installer (diff) | |
parent | [clientrequest] add remote debugging modul from Christoph Schulthess (diff) | |
download | mltk-09f9b20ae36bbbff9e303c52d2a8f2a034cd4f1e.tar.gz mltk-09f9b20ae36bbbff9e303c52d2a8f2a034cd4f1e.tar.xz mltk-09f9b20ae36bbbff9e303c52d2a8f2a034cd4f1e.zip |
Merge branch 'master' into installer
Diffstat (limited to 'core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitectureTest.java')
-rw-r--r-- | core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitectureTest.java | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitectureTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitectureTest.java new file mode 100644 index 00000000..86186247 --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitectureTest.java @@ -0,0 +1,105 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.InputStream; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.capabilities.Capabilities; +import org.openslx.libvirt.domain.Domain; +import org.openslx.libvirt.domain.Domain.OsType; +import org.openslx.libvirt.domain.Domain.Type; +import org.openslx.libvirt.xml.LibvirtXmlDocumentException; +import org.openslx.libvirt.xml.LibvirtXmlSerializationException; +import org.openslx.libvirt.xml.LibvirtXmlTestResources; +import org.openslx.libvirt.xml.LibvirtXmlValidationException; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +class TransformationSpecificQemuArchitectureStub extends TransformationSpecificQemuArchitecture +{ + final String capabilityFileName; + + public TransformationSpecificQemuArchitectureStub( String capabilityFileName ) + { + super( null ); + + this.capabilityFileName = capabilityFileName; + } + + @Override + protected Capabilities getCapabilities() throws TransformationException + { + final InputStream capabilityContent = LibvirtXmlTestResources.getLibvirtXmlStream( this.capabilityFileName ); + Capabilities capabilites = null; + + try { + capabilites = new Capabilities( capabilityContent ); + } catch ( LibvirtXmlDocumentException | LibvirtXmlSerializationException | LibvirtXmlValidationException e ) { + fail( "Could not create stub for getCapabilities(): " + e.getLocalizedMessage() ); + } + + return capabilites; + } +} + +public class TransformationSpecificQemuArchitectureTest +{ + @Test + @DisplayName( "Test transformation of VM architecture configuration if KVM required and available" ) + public void testTransformationSpecificQemuArchitectureKvm() throws TransformationException + { + final TransformationSpecificQemuArchitectureStub transformation; + transformation = new TransformationSpecificQemuArchitectureStub( "qemu-kvm_capabilities_default.xml" ); + final Domain config = TransformationTestUtils.getDefaultDomain(); + + assertEquals( Type.KVM, config.getType() ); + assertEquals( "x86_64", config.getOsArch() ); + assertEquals( "pc-q35-5.1", config.getOsMachine() ); + assertEquals( OsType.HVM, config.getOsType() ); + + transformation.transform( config, null ); + + assertEquals( Type.KVM, config.getType() ); + assertEquals( "x86_64", config.getOsArch() ); + assertEquals( "pc-q35-5.1", config.getOsMachine() ); + assertEquals( OsType.HVM, config.getOsType() ); + + assertDoesNotThrow( () -> config.validateXml() ); + } + + @Test + @DisplayName( "Test transformation of VM architecture configuration if KVM required but not available" ) + public void testTransformationSpecificQemuArchitectureNoKvm() throws TransformationException + { + final TransformationSpecificQemuArchitectureStub transformation; + transformation = new TransformationSpecificQemuArchitectureStub( "qemu-kvm_capabilities_no-kvm.xml" ); + final Domain config = TransformationTestUtils.getDefaultDomain(); + + assertEquals( Type.KVM, config.getType() ); + assertEquals( "x86_64", config.getOsArch() ); + assertEquals( "pc-q35-5.1", config.getOsMachine() ); + assertEquals( OsType.HVM, config.getOsType() ); + + assertThrows( TransformationException.class, () -> transformation.transform( config, null ) ); + } + + @Test + @DisplayName( "Test transformation of VM architecture configuration if version is not supported (machine version too new)" ) + public void testTransformationSpecificQemuArchitectureMachineVersionDowngrade() throws TransformationException + { + final TransformationSpecificQemuArchitectureStub transformation; + transformation = new TransformationSpecificQemuArchitectureStub( "qemu-kvm_capabilities_old-version.xml" ); + final Domain config = TransformationTestUtils.getDefaultDomain(); + + assertEquals( Type.KVM, config.getType() ); + assertEquals( "x86_64", config.getOsArch() ); + assertEquals( "pc-q35-5.1", config.getOsMachine() ); + assertEquals( OsType.HVM, config.getOsType() ); + + assertThrows( TransformationException.class, () -> transformation.transform( config, null ) ); + } +} |