summaryrefslogtreecommitdiffstats
path: root/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java
diff options
context:
space:
mode:
authorManuel Bentele2021-04-26 13:51:35 +0200
committerManuel Bentele2021-04-26 13:51:35 +0200
commite815ad917e3adeb2be387c7ef6ed2dd74602d69b (patch)
tree6c4cff0860ce981871ef94969ca22d67454af262 /src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java
parentRefactors and abstracts version information in config logic and disk image (diff)
downloadmaster-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.java58
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() );
+ }
}