diff options
author | Manuel Bentele | 2021-04-26 13:51:35 +0200 |
---|---|---|
committer | Manuel Bentele | 2021-04-26 13:51:35 +0200 |
commit | e815ad917e3adeb2be387c7ef6ed2dd74602d69b (patch) | |
tree | 6c4cff0860ce981871ef94969ca22d67454af262 /src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java | |
parent | Refactors and abstracts version information in config logic and disk image (diff) | |
download | master-sync-shared-e815ad917e3adeb2be387c7ef6ed2dd74602d69b.tar.gz master-sync-shared-e815ad917e3adeb2be387c7ef6ed2dd74602d69b.tar.xz master-sync-shared-e815ad917e3adeb2be387c7ef6ed2dd74602d69b.zip |
Add supported virtualizer versions for Libvirt/QEMU
Diffstat (limited to 'src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java')
-rw-r--r-- | src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java index 0412002..93f3750 100644 --- a/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java +++ b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java @@ -3,6 +3,7 @@ package org.openslx.virtualization.configuration; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.params.provider.Arguments.arguments; @@ -32,6 +33,7 @@ import org.openslx.libvirt.domain.device.DiskStorage; import org.openslx.libvirt.domain.device.Interface; import org.openslx.libvirt.domain.device.Sound; import org.openslx.libvirt.xml.LibvirtXmlTestResources; +import org.openslx.virtualization.Version; import org.openslx.virtualization.configuration.VirtualizationConfiguration.EtherType; import org.openslx.virtualization.configuration.VirtualizationConfiguration.EthernetDevType; import org.openslx.virtualization.configuration.VirtualizationConfiguration.SoundCardType; @@ -518,4 +520,60 @@ public class VirtualizationConfigurationQemuTest assertDoesNotThrow( () -> vmLibvirtDomainConfig.validateXml() ); } + + @ParameterizedTest + @DisplayName( "Test get virtualizer HW version from VM configuration" ) + @ValueSource( strings = { "qemu-kvm_default-archlinux-vm-old-os.xml", "qemu-kvm_default-archlinux-vm-no-os.xml" } ) + public void testQemuMetaDataGetVirtualizerVersion( String xmlFileName ) + throws VirtualizationConfigurationException, NoSuchFieldException, SecurityException, + IllegalArgumentException, IllegalAccessException + { + File file = LibvirtXmlTestResources.getLibvirtXmlFile( xmlFileName ); + VirtualizationConfigurationQemu vmConfig = new VirtualizationConfigurationQemu( null, file ); + + final Domain vmLibvirtDomainConfig = VirtualizationConfigurationQemuTest + .getPrivateDomainFromQemuMetaData( vmConfig ); + + final Version machineVersion = vmConfig.getVirtualizerVersion(); + + if ( vmLibvirtDomainConfig.getOsMachine() == null ) { + assertNull( machineVersion ); + } else { + assertEquals( new Version( Short.valueOf( "3" ), Short.valueOf( "1" ) ), machineVersion ); + } + + assertDoesNotThrow( () -> vmLibvirtDomainConfig.validateXml() ); + } + + @ParameterizedTest + @DisplayName( "Test set virtualizer HW version in VM configuration" ) + @ValueSource( strings = { "qemu-kvm_default-archlinux-vm-old-os.xml", "qemu-kvm_default-archlinux-vm-no-os.xml" } ) + public void testQemuMetaDataSetVirtualizerVersion( String xmlFileName ) + throws VirtualizationConfigurationException, NoSuchFieldException, SecurityException, + IllegalArgumentException, IllegalAccessException + { + File file = LibvirtXmlTestResources.getLibvirtXmlFile( xmlFileName ); + VirtualizationConfigurationQemu vmConfig = new VirtualizationConfigurationQemu( null, file ); + + final Domain vmLibvirtDomainConfig = VirtualizationConfigurationQemuTest + .getPrivateDomainFromQemuMetaData( vmConfig ); + + final String originalOsMachine = vmLibvirtDomainConfig.getOsMachine(); + if ( originalOsMachine != null ) { + assertEquals( "pc-q35-3.1", originalOsMachine ); + } + + final Version modifiedVersion = new Version( Short.valueOf( "4" ), Short.valueOf( "1" ) ); + vmConfig.setVirtualizerVersion( modifiedVersion ); + + final String modifiedOsMachine = vmLibvirtDomainConfig.getOsMachine(); + if ( modifiedOsMachine == null ) { + assertNull( vmConfig.getVirtualizerVersion() ); + } else { + assertEquals( modifiedVersion, vmConfig.getVirtualizerVersion() ); + assertEquals( "pc-q35-4.1", modifiedOsMachine ); + } + + assertDoesNotThrow( () -> vmLibvirtDomainConfig.validateXml() ); + } } |