summaryrefslogtreecommitdiffstats
path: root/src/test/java/org/openslx/virtualization/configuration
diff options
context:
space:
mode:
authorManuel Bentele2021-05-05 09:37:45 +0200
committerManuel Bentele2021-05-05 09:37:45 +0200
commit07e2d0fdde3c85ea6d126e8986694a091f1803ff (patch)
treecd49d98653377d3003f24a95c0757bf1480bce14 /src/test/java/org/openslx/virtualization/configuration
parentAdd libosinfo database and validation schema files for Libvirt (diff)
downloadmaster-sync-shared-07e2d0fdde3c85ea6d126e8986694a091f1803ff.tar.gz
master-sync-shared-07e2d0fdde3c85ea6d126e8986694a091f1803ff.tar.xz
master-sync-shared-07e2d0fdde3c85ea6d126e8986694a091f1803ff.zip
Add OS detection for Libvirt/QEMU virtualization configurations
Diffstat (limited to 'src/test/java/org/openslx/virtualization/configuration')
-rw-r--r--src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java40
-rw-r--r--src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java2
2 files changed, 41 insertions, 1 deletions
diff --git a/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java
index b59a86d..1cc7841 100644
--- a/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java
+++ b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java
@@ -25,6 +25,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.ValueSource;
+import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.libvirt.domain.Domain;
import org.openslx.libvirt.domain.device.ControllerUsb;
import org.openslx.libvirt.domain.device.DiskCdrom;
@@ -38,12 +39,15 @@ import org.openslx.virtualization.configuration.VirtualizationConfiguration.Ethe
import org.openslx.virtualization.configuration.VirtualizationConfiguration.EthernetDevType;
import org.openslx.virtualization.configuration.VirtualizationConfiguration.SoundCardType;
import org.openslx.virtualization.configuration.VirtualizationConfiguration.UsbSpeed;
+import org.openslx.virtualization.configuration.logic.ConfigurationLogicTestUtils;
import org.openslx.vm.disk.DiskImage;
import org.openslx.vm.disk.DiskImageTestResources;
import org.openslx.vm.disk.DiskImage.ImageFormat;
public class VirtualizationConfigurationQemuTest
{
+ public static final List<OperatingSystem> STUB_OS_LIST = ConfigurationLogicTestUtils.STUB_OS_LIST;
+
private static Domain getPrivateDomainFromQemuMetaData( VirtualizationConfigurationQemu qemuMetadata )
throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException
{
@@ -111,6 +115,42 @@ public class VirtualizationConfigurationQemuTest
}
@Test
+ @DisplayName( "Test output of detected 32-bit OS from VM configuration" )
+ public void testQemuMetaDataGetOs32Bit()
+ throws VirtualizationConfigurationException, IOException, NoSuchFieldException, SecurityException,
+ IllegalArgumentException, IllegalAccessException
+ {
+ final File file = LibvirtXmlTestResources.getLibvirtXmlFile( "qemu-kvm_default-ubuntu-20-04-vm_i686.xml" );
+ final VirtualizationConfigurationQemu vmConfig = new VirtualizationConfigurationQemu(
+ VirtualizationConfigurationQemuTest.STUB_OS_LIST, file );
+
+ final OperatingSystem os = vmConfig.getOs();
+
+ assertNotNull( os );
+ assertEquals( VirtualizationConfigurationQemuTest.STUB_OS_LIST.get( 3 ), os );
+
+ assertDoesNotThrow( () -> vmConfig.validate() );
+ }
+
+ @Test
+ @DisplayName( "Test output of detected 64-bit OS from VM configuration" )
+ public void testQemuMetaDataGetOs64Bit()
+ throws VirtualizationConfigurationException, IOException, NoSuchFieldException, SecurityException,
+ IllegalArgumentException, IllegalAccessException
+ {
+ final File file = LibvirtXmlTestResources.getLibvirtXmlFile( "qemu-kvm_default-ubuntu-20-04-vm.xml" );
+ final VirtualizationConfigurationQemu vmConfig = new VirtualizationConfigurationQemu(
+ VirtualizationConfigurationQemuTest.STUB_OS_LIST, file );
+
+ final OperatingSystem os = vmConfig.getOs();
+
+ assertNotNull( os );
+ assertEquals( VirtualizationConfigurationQemuTest.STUB_OS_LIST.get( 4 ), os );
+
+ assertDoesNotThrow( () -> vmConfig.validate() );
+ }
+
+ @Test
@DisplayName( "Test output of HDDs from VM configuration" )
public void testQemuMetaDataGetHdds()
throws VirtualizationConfigurationException, IOException, NoSuchFieldException, SecurityException,
diff --git a/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java b/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java
index 4f85719..07046b5 100644
--- a/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java
+++ b/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java
@@ -21,7 +21,7 @@ import org.openslx.virtualization.configuration.VirtualizationConfiguration;
public class ConfigurationLogicTestUtils
{
// @formatter:off
- private static final List<OperatingSystem> STUB_OS_LIST = Collections.unmodifiableList( Arrays.asList(
+ public static final List<OperatingSystem> STUB_OS_LIST = Collections.unmodifiableList( Arrays.asList(
new OperatingSystem( 1, "Windows 7 (64 Bit)", null, "AMD64", 196608, 256 ),
new OperatingSystem( 2, "Windows 8 (32 Bit)", null, "x86", 4096, 32 ),
new OperatingSystem( 3, "Windows 8 (64 Bit)", null, "AMD64", 131072, 256 ),