diff options
author | Manuel Bentele | 2021-05-26 11:32:54 +0200 |
---|---|---|
committer | Manuel Bentele | 2021-05-26 11:32:54 +0200 |
commit | 985b51d7a308ce468105b2c38a293e9f4bd1f48e (patch) | |
tree | 2cbaba0115351635b59ad3119da744137682da9f /core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt | |
parent | [qemu] Rename term 'filter' in test classes to match 'transformation' (diff) | |
download | mltk-985b51d7a308ce468105b2c38a293e9f4bd1f48e.tar.gz mltk-985b51d7a308ce468105b2c38a293e9f4bd1f48e.tar.xz mltk-985b51d7a308ce468105b2c38a293e9f4bd1f48e.zip |
[qemu] Add unit tests for Libvirt configuration transformations
Diffstat (limited to 'core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt')
12 files changed, 516 insertions, 4 deletions
diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/AppTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/AppTest.java index a7929ab0..1db1525b 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/AppTest.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/AppTest.java @@ -63,7 +63,7 @@ public class AppTest assertTrue( shortHelpOptionCorrectOutput.contains( App.APP_DESC ) ); // test that no error was logged and output is available - assertEquals( 2093, shortHelpOptionCorrectOutput.length() ); + assertEquals( 2160, shortHelpOptionCorrectOutput.length() ); assertEquals( 0, shortHelpOptionCorrectErrOutput.length() ); } @@ -91,7 +91,7 @@ public class AppTest assertTrue( longHelpOptionCorrectOutput.contains( App.APP_DESC ) ); // test that no error was logged and output is available - assertEquals( 2093, longHelpOptionCorrectOutput.length() ); + assertEquals( 2160, longHelpOptionCorrectOutput.length() ); assertEquals( 0, longHelpOptionCorrectErrOutput.length() ); } @@ -119,7 +119,7 @@ public class AppTest assertTrue( shortHelpOptionIncorrectOutput.contains( App.APP_DESC ) ); // test that error was logged and output is available - assertEquals( 2093, shortHelpOptionIncorrectOutput.length() ); + assertEquals( 2160, shortHelpOptionIncorrectOutput.length() ); assertEquals( 0, shortHelpOptionIncorrectErrOutput.length() ); } @@ -147,7 +147,7 @@ public class AppTest assertTrue( longHelpOptionIncorrectOutput.contains( App.APP_DESC ) ); // test that error was logged and output is available - assertEquals( 2093, longHelpOptionIncorrectOutput.length() ); + assertEquals( 2160, longHelpOptionIncorrectOutput.length() ); assertEquals( 0, longHelpOptionIncorrectErrOutput.length() ); } diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericCpuTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericCpuTest.java index 260adcc1..7e93513b 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericCpuTest.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericCpuTest.java @@ -2,6 +2,7 @@ package org.openslx.runvirt.plugin.qemu.configuration; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -31,4 +32,15 @@ public class TransformationGenericCpuTest assertEquals( CpuMode.HOST_PASSTHROUGH, config.getCpuMode() ); assertEquals( CpuCheck.PARTIAL, config.getCpuCheck() ); } + + @Test + @DisplayName( "Test transformation of VM CPU configuration with unspecified input data" ) + public void testTransformationGenericCpuNoData() throws TransformationException + { + final TransformationGenericCpu transformation = new TransformationGenericCpu(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + assertThrows( TransformationException.class, () -> transformation.transform( config, args ) ); + } } diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericDiskCdromDevicesTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericDiskCdromDevicesTest.java new file mode 100644 index 00000000..842e30e6 --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericDiskCdromDevicesTest.java @@ -0,0 +1,60 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +import java.util.ArrayList; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.domain.Domain; +import org.openslx.libvirt.domain.device.Disk.StorageType; +import org.openslx.libvirt.domain.device.DiskCdrom; +import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +public class TransformationGenericDiskCdromDevicesTest +{ + @Test + @DisplayName( "Test transformation of VM disk CDROM devices configuration with specified input data" ) + public void testTransformationGenericDiskCdromDevices() throws TransformationException + { + final TransformationGenericDiskCdromDevices transformation = new TransformationGenericDiskCdromDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + final ArrayList<DiskCdrom> devicesBeforeTransformation = config.getDiskCdromDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + final DiskCdrom cdromDeviceBeforeTransformation = devicesBeforeTransformation.get( 0 ); + assertEquals( StorageType.FILE, cdromDeviceBeforeTransformation.getStorageType() ); + assertNotEquals( TransformationTestUtils.DEFAULT_VM_CDROM0, cdromDeviceBeforeTransformation.getStorageSource() ); + + transformation.transform( config, args ); + + final ArrayList<DiskCdrom> devicesAfterTransformation = config.getDiskCdromDevices(); + assertEquals( 2, devicesAfterTransformation.size() ); + final DiskCdrom cdromDevice1AfterTransformation = devicesAfterTransformation.get( 0 ); + final DiskCdrom cdromDevice2AfterTransformation = devicesAfterTransformation.get( 1 ); + assertEquals( StorageType.FILE, cdromDevice1AfterTransformation.getStorageType() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_CDROM0, cdromDevice1AfterTransformation.getStorageSource() ); + assertEquals( StorageType.FILE, cdromDevice2AfterTransformation.getStorageType() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_CDROM1, cdromDevice2AfterTransformation.getStorageSource() ); + } + + @Test + @DisplayName( "Test transformation of VM disk CDROM devices configuration with unspecified input data" ) + public void testTransformationGenericDiskCdromDevicesNoData() throws TransformationException + { + final TransformationGenericDiskCdromDevices transformation = new TransformationGenericDiskCdromDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + final ArrayList<DiskCdrom> devicesBeforeTransformation = config.getDiskCdromDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<DiskCdrom> devicesAfterTransformation = config.getDiskCdromDevices(); + assertEquals( 0, devicesAfterTransformation.size() ); + } +} diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericDiskFloppyDevicesTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericDiskFloppyDevicesTest.java new file mode 100644 index 00000000..d4678f4f --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericDiskFloppyDevicesTest.java @@ -0,0 +1,61 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +import java.util.ArrayList; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.domain.Domain; +import org.openslx.libvirt.domain.device.Disk.StorageType; +import org.openslx.libvirt.domain.device.DiskFloppy; +import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +public class TransformationGenericDiskFloppyDevicesTest +{ + @Test + @DisplayName( "Test transformation of VM disk floppy devices configuration with specified input data" ) + public void testTransformationGenericDiskFloppyDevices() throws TransformationException + { + final TransformationGenericDiskFloppyDevices transformation = new TransformationGenericDiskFloppyDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + final ArrayList<DiskFloppy> devicesBeforeTransformation = config.getDiskFloppyDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + final DiskFloppy floppyDeviceBeforeTransformation = devicesBeforeTransformation.get( 0 ); + assertEquals( StorageType.FILE, floppyDeviceBeforeTransformation.getStorageType() ); + assertNotEquals( TransformationTestUtils.DEFAULT_VM_FLOPPY0, + floppyDeviceBeforeTransformation.getStorageSource() ); + + transformation.transform( config, args ); + + final ArrayList<DiskFloppy> devicesAfterTransformation = config.getDiskFloppyDevices(); + assertEquals( 2, devicesAfterTransformation.size() ); + final DiskFloppy floppyDevice1AfterTransformation = devicesAfterTransformation.get( 0 ); + final DiskFloppy floppyDevice2AfterTransformation = devicesAfterTransformation.get( 1 ); + assertEquals( StorageType.FILE, floppyDevice1AfterTransformation.getStorageType() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_FLOPPY0, floppyDevice1AfterTransformation.getStorageSource() ); + assertEquals( StorageType.FILE, floppyDevice2AfterTransformation.getStorageType() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_FLOPPY1, floppyDevice2AfterTransformation.getStorageSource() ); + } + + @Test + @DisplayName( "Test transformation of VM disk floppy devices configuration with unspecified input data" ) + public void testTransformationGenericDiskFloppyDevicesNoData() throws TransformationException + { + final TransformationGenericDiskFloppyDevices transformation = new TransformationGenericDiskFloppyDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + final ArrayList<DiskFloppy> devicesBeforeTransformation = config.getDiskFloppyDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<DiskFloppy> devicesAfterTransformation = config.getDiskFloppyDevices(); + assertEquals( 0, devicesAfterTransformation.size() ); + } +} diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericFileSystemDevicesTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericFileSystemDevicesTest.java new file mode 100644 index 00000000..38a07e38 --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericFileSystemDevicesTest.java @@ -0,0 +1,61 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.domain.Domain; +import org.openslx.libvirt.domain.device.FileSystem; +import org.openslx.libvirt.domain.device.FileSystem.AccessMode; +import org.openslx.libvirt.domain.device.FileSystem.Type; +import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +public class TransformationGenericFileSystemDevicesTest +{ + @Test + @DisplayName( "Test transformation of VM file system devices configuration with specified input data" ) + public void testTransformationGenericFileSystemDevices() throws TransformationException + { + final TransformationGenericFileSystemDevices transformation = new TransformationGenericFileSystemDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + final ArrayList<FileSystem> devicesBeforeTransformation = config.getFileSystemDevices(); + assertEquals( 0, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<FileSystem> devicesAfterTransformation = config.getFileSystemDevices(); + assertEquals( 2, devicesAfterTransformation.size() ); + final FileSystem fs1AfterTransformation = devicesAfterTransformation.get( 0 ); + final FileSystem fs2AfterTransformation = devicesAfterTransformation.get( 1 ); + assertEquals( Type.MOUNT, fs1AfterTransformation.getType() ); + assertEquals( AccessMode.MAPPED, fs1AfterTransformation.getAccessMode() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_FSSRC0, fs1AfterTransformation.getSource() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_FSTGT0, fs1AfterTransformation.getTarget() ); + assertEquals( Type.MOUNT, fs2AfterTransformation.getType() ); + assertEquals( AccessMode.MAPPED, fs2AfterTransformation.getAccessMode() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_FSSRC1, fs2AfterTransformation.getSource() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_FSTGT1, fs2AfterTransformation.getTarget() ); + } + + @Test + @DisplayName( "Test transformation of VM file system devices configuration with unspecified input data" ) + public void testTransformationGenericFileSystemDevicesNoData() throws TransformationException + { + final TransformationGenericFileSystemDevices transformation = new TransformationGenericFileSystemDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + final ArrayList<FileSystem> devicesBeforeTransformation = config.getFileSystemDevices(); + assertEquals( 0, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<FileSystem> devicesAfterTransformation = config.getFileSystemDevices(); + assertEquals( 0, devicesAfterTransformation.size() ); + } +} diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevicesTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevicesTest.java new file mode 100644 index 00000000..6257e98f --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevicesTest.java @@ -0,0 +1,58 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.domain.Domain; +import org.openslx.libvirt.domain.device.Interface; +import org.openslx.libvirt.domain.device.Interface.Model; +import org.openslx.libvirt.domain.device.Interface.Type; +import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs; +import org.openslx.virtualization.configuration.VirtualizationConfigurationQemu; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +public class TransformationGenericInterfaceDevicesTest +{ + @Test + @DisplayName( "Test transformation of VM network interface devices configuration with specified input data" ) + public void testTransformationGenericInterfaceDevices() throws TransformationException + { + final TransformationGenericInterfaceDevices transformation = new TransformationGenericInterfaceDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + final ArrayList<Interface> devicesBeforeTransformation = config.getInterfaceDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<Interface> devicesAfterTransformation = config.getInterfaceDevices(); + assertEquals( 1, devicesAfterTransformation.size() ); + final Interface interfaceAfterTransformation = devicesAfterTransformation.get( 0 ); + assertEquals( Type.BRIDGE, interfaceAfterTransformation.getType() ); + assertEquals( Model.VIRTIO, interfaceAfterTransformation.getModel() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_MAC0, interfaceAfterTransformation.getMacAddress() ); + assertEquals( VirtualizationConfigurationQemu.NETWORK_BRIDGE_NAT_DEFAULT, + interfaceAfterTransformation.getSource() ); + } + + @Test + @DisplayName( "Test transformation of VM network interface devices configuration with unspecified input data" ) + public void testTransformationGenericInterfaceDevicesNoData() throws TransformationException + { + final TransformationGenericInterfaceDevices transformation = new TransformationGenericInterfaceDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + final ArrayList<Interface> devicesBeforeTransformation = config.getInterfaceDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<Interface> devicesAfterTransformation = config.getInterfaceDevices(); + assertEquals( 0, devicesAfterTransformation.size() ); + } +} diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericMemoryTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericMemoryTest.java index 812982ee..76f53e40 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericMemoryTest.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericMemoryTest.java @@ -2,6 +2,7 @@ package org.openslx.runvirt.plugin.qemu.configuration; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.math.BigInteger; @@ -32,4 +33,15 @@ public class TransformationGenericMemoryTest assertEquals( defaultMemory.toString(), config.getMemory().toString() ); assertEquals( defaultMemory.toString(), config.getCurrentMemory().toString() ); } + + @Test + @DisplayName( "Test transformation of VM memory configuration with unspecified input data" ) + public void testTransformationGenericMemoryNoData() throws TransformationException + { + final TransformationGenericMemory transformation = new TransformationGenericMemory(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + assertThrows( TransformationException.class, () -> transformation.transform( config, args ) ); + } } diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericNameTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericNameTest.java index 2403b83f..b52162d7 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericNameTest.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericNameTest.java @@ -2,6 +2,7 @@ package org.openslx.runvirt.plugin.qemu.configuration; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -27,4 +28,15 @@ public class TransformationGenericNameTest assertEquals( TransformationTestUtils.DEFAULT_VM_NAME, config.getName() ); assertEquals( TransformationTestUtils.DEFAULT_VM_DSPLNAME, config.getTitle() ); } + + @Test + @DisplayName( "Test transformation of VM (display) name configuration with unspecified input data" ) + public void testTransformationGenericNameNoData() throws TransformationException + { + final TransformationGenericName transformation = new TransformationGenericName(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + assertThrows( TransformationException.class, () -> transformation.transform( config, args ) ); + } } diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericParallelDevicesTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericParallelDevicesTest.java new file mode 100644 index 00000000..63fb134c --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericParallelDevicesTest.java @@ -0,0 +1,53 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.domain.Domain; +import org.openslx.libvirt.domain.device.Parallel; +import org.openslx.libvirt.domain.device.Parallel.Type; +import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +public class TransformationGenericParallelDevicesTest +{ + @Test + @DisplayName( "Test transformation of VM parallel devices configuration with specified input data" ) + public void testTransformationGenericParallelDevices() throws TransformationException + { + final TransformationGenericParallelDevices transformation = new TransformationGenericParallelDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + final ArrayList<Parallel> devicesBeforeTransformation = config.getParallelDevices(); + assertEquals( 0, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<Parallel> devicesAfterTransformation = config.getParallelDevices(); + assertEquals( 1, devicesAfterTransformation.size() ); + final Parallel parallelDeviceAfterTransformation = devicesAfterTransformation.get( 0 ); + assertEquals( Type.DEV, parallelDeviceAfterTransformation.getType() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_PARALLEL0, parallelDeviceAfterTransformation.getSource() ); + } + + @Test + @DisplayName( "Test transformation of VM parallel devices configuration with unspecified input data" ) + public void testTransformationGenericParallelDevicesNoData() throws TransformationException + { + final TransformationGenericParallelDevices transformation = new TransformationGenericParallelDevices(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + final ArrayList<Parallel> devicesBeforeTransformation = config.getParallelDevices(); + assertEquals( 0, devicesBeforeTransformation.size() ); + + transformation.transform( config, args ); + + final ArrayList<Parallel> devicesAfterTransformation = config.getParallelDevices(); + assertEquals( 0, devicesAfterTransformation.size() ); + } +} diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericUuidTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericUuidTest.java index d42a84eb..8fe20886 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericUuidTest.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericUuidTest.java @@ -2,6 +2,7 @@ package org.openslx.runvirt.plugin.qemu.configuration; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -25,4 +26,15 @@ public class TransformationGenericUuidTest assertEquals( TransformationTestUtils.DEFAULT_VM_UUID, config.getUuid() ); } + + @Test + @DisplayName( "Test transformation of VM UUID configuration with unspecified input data" ) + public void testTransformationGenericUuidNoData() throws TransformationException + { + final TransformationGenericUuid transformation = new TransformationGenericUuid(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + assertThrows( TransformationException.class, () -> transformation.transform( config, args ) ); + } } 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..50689c4e --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuArchitectureTest.java @@ -0,0 +1,102 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +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() ); + } + + @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 ) ); + } +} diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuSerialDevicesTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuSerialDevicesTest.java new file mode 100644 index 00000000..270bfff9 --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuSerialDevicesTest.java @@ -0,0 +1,69 @@ +package org.openslx.runvirt.plugin.qemu.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.domain.Domain; +import org.openslx.libvirt.domain.device.Serial; +import org.openslx.libvirt.domain.device.Serial.Type; +import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +class TransformationSpecificQemuSerialDevicesStub extends TransformationSpecificQemuSerialDevices +{ + public TransformationSpecificQemuSerialDevicesStub() + { + super( null ); + } +} + +public class TransformationSpecificQemuSerialDevicesTest +{ + @Test + @DisplayName( "Test transformation of VM serial devices configuration with specified input data" ) + public void testTransformationGenericSerialDevices() throws TransformationException + { + final TransformationSpecificQemuSerialDevicesStub transformation = new TransformationSpecificQemuSerialDevicesStub(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + final ArrayList<Serial> devicesBeforeTransformation = config.getSerialDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + final Serial serialDeviceBeforeTransformation = devicesBeforeTransformation.get( 0 ); + assertEquals( Type.PTY, serialDeviceBeforeTransformation.getType() ); + + transformation.transform( config, args ); + + final ArrayList<Serial> devicesAfterTransformation = config.getSerialDevices(); + assertEquals( 2, devicesAfterTransformation.size() ); + final Serial serialDevice1AfterTransformation = devicesAfterTransformation.get( 0 ); + assertEquals( Type.PTY, serialDevice1AfterTransformation.getType() ); + final Serial serialDevice2AfterTransformation = devicesAfterTransformation.get( 1 ); + assertEquals( Type.DEV, serialDevice2AfterTransformation.getType() ); + assertEquals( TransformationTestUtils.DEFAULT_VM_SERIAL0, serialDevice2AfterTransformation.getSource() ); + } + + @Test + @DisplayName( "Test transformation of VM serial devices configuration with unspecified input data" ) + public void testTransformationGenericSerialDevicesNoData() throws TransformationException + { + final TransformationSpecificQemuSerialDevicesStub transformation = new TransformationSpecificQemuSerialDevicesStub(); + final Domain config = TransformationTestUtils.getDefaultDomain(); + final CommandLineArgs args = TransformationTestUtils.getEmptyCmdLnArgs(); + + final ArrayList<Serial> devicesBeforeTransformation = config.getSerialDevices(); + assertEquals( 1, devicesBeforeTransformation.size() ); + final Serial serialDeviceBeforeTransformation = devicesBeforeTransformation.get( 0 ); + assertEquals( Type.PTY, serialDeviceBeforeTransformation.getType() ); + + transformation.transform( config, args ); + + final ArrayList<Serial> devicesAfterTransformation = config.getSerialDevices(); + assertEquals( 1, devicesAfterTransformation.size() ); + final Serial serialDeviceAfterTransformation = devicesBeforeTransformation.get( 0 ); + assertEquals( Type.PTY, serialDeviceAfterTransformation.getType() ); + } +} |