diff options
Diffstat (limited to 'core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx')
5 files changed, 100 insertions, 10 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 a8618878..aca51d07 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( 2655, shortHelpOptionCorrectOutput.length() ); + assertEquals( 2740, 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( 2655, longHelpOptionCorrectOutput.length() ); + assertEquals( 2740, 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( 2655, shortHelpOptionIncorrectOutput.length() ); + assertEquals( 2740, 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( 2655, longHelpOptionIncorrectOutput.length() ); + assertEquals( 2740, longHelpOptionIncorrectOutput.length() ); assertEquals( 0, longHelpOptionIncorrectErrOutput.length() ); } diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/cmdln/CommandLineArgsTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/cmdln/CommandLineArgsTest.java index dc863088..b61e41d9 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/cmdln/CommandLineArgsTest.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/cmdln/CommandLineArgsTest.java @@ -142,6 +142,34 @@ public class CommandLineArgsTest } @Test + @DisplayName( "Test the parsing of the firmware path command line option (short version)" ) + public void testCmdlnOptionFirmwareShort() throws CommandLineArgsException + { + final String[] args = { + CMDLN_PREFIX_OPTION_SHORT + CmdLnOption.FIRMWARE.getShortOption(), + CMDLN_TEST_FILENAME + }; + + CommandLineArgs cmdLn = new CommandLineArgs( args ); + + assertEquals( CMDLN_TEST_FILENAME, cmdLn.getFirmware() ); + } + + @Test + @DisplayName( "Test the parsing of the firmware command line option (long version)" ) + public void testCmdlnOptionFirmwareLong() throws CommandLineArgsException + { + final String[] args = { + CMDLN_PREFIX_OPTION_LONG + CmdLnOption.FIRMWARE.getLongOption(), + CMDLN_TEST_FILENAME + }; + + CommandLineArgs cmdLn = new CommandLineArgs( args ); + + assertEquals( CMDLN_TEST_FILENAME, cmdLn.getFirmware() ); + } + + @Test @DisplayName( "Test the parsing of the VM configuration input command line option (short version)" ) public void testCmdlnOptionVmCfgInpShort() throws CommandLineArgsException { diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuFirmwareTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuFirmwareTest.java new file mode 100644 index 00000000..f469e3fc --- /dev/null +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuFirmwareTest.java @@ -0,0 +1,60 @@ +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.assertNull; + +import java.nio.file.Paths; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openslx.libvirt.domain.Domain; +import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs; +import org.openslx.virtualization.configuration.transformation.TransformationException; + +class TransformationSpecificQemuFirmwareStub extends TransformationSpecificQemuFirmware +{ + public TransformationSpecificQemuFirmwareStub() + { + super( null ); + } +} + +public class TransformationSpecificQemuFirmwareTest +{ + @Test + @DisplayName( "Test transformation of VM OS loader (firmware) configuration with specified input data" ) + public void testTransformationSpecificQemuFirmwareUefiLoader() throws TransformationException + { + final TransformationSpecificQemuFirmwareStub transformation = new TransformationSpecificQemuFirmwareStub(); + final Domain config = TransformationTestUtils + .getDomain( "qemu-kvm_default-ubuntu-20-04-vm_transform-non-persistent_uefi.xml" ); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + assertEquals( Paths.get( "/usr/share/edk2-ovmf/x64/OVMF_CODE.fd" ).toString(), config.getOsLoader() ); + + transformation.transform( config, args ); + + assertEquals( Paths.get( "/usr/share/qemu/edk2-x86_64-code.fd" ).toString(), config.getOsLoader() ); + + assertDoesNotThrow( () -> config.validateXml() ); + } + + @Test + @DisplayName( "Test transformation of missing VM OS loader (firmware) configuration" ) + public void testTransformationSpecificQemuFirmwareNoLoader() throws TransformationException + { + final TransformationSpecificQemuFirmwareStub transformation = new TransformationSpecificQemuFirmwareStub(); + final Domain config = TransformationTestUtils + .getDomain( "qemu-kvm_default-ubuntu-20-04-vm_transform-non-persistent.xml" ); + final CommandLineArgs args = TransformationTestUtils.getDefaultCmdLnArgs(); + + assertNull( config.getOsLoader() ); + + transformation.transform( config, args ); + + assertNull( config.getOsLoader() ); + + assertDoesNotThrow( () -> config.validateXml() ); + } +} diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestResources.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestResources.java index b04685f9..2c278f23 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestResources.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestResources.java @@ -5,13 +5,12 @@ import java.net.URL; public class TransformationTestResources { - private static final String LIBVIRT_PREFIX_PATH = File.separator + "libvirt"; - private static final String LIBVIRT_PREFIX_PATH_XML = LIBVIRT_PREFIX_PATH + File.separator + "xml"; + private static final String QEMU_PREFIX_PATH = File.separator + "qemu"; + private static final String QEMU_PREFIX_PATH_FW = QEMU_PREFIX_PATH + File.separator + "firmware"; - public static File getLibvirtXmlFile( String libvirtXmlFileName ) + public static String getQemuFirmwareSpecPath() { - String libvirtXmlPath = TransformationTestResources.LIBVIRT_PREFIX_PATH_XML + File.separator + libvirtXmlFileName; - URL libvirtXml = TransformationTestResources.class.getResource( libvirtXmlPath ); - return new File( libvirtXml.getFile() ); + final URL qemuFwSpecPath = TransformationTestResources.class.getResource( QEMU_PREFIX_PATH_FW ); + return qemuFwSpecPath.getFile(); } } diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestUtils.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestUtils.java index 2a811f2a..5123cae1 100644 --- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestUtils.java +++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationTestUtils.java @@ -15,6 +15,7 @@ import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgsTest; public class TransformationTestUtils { // @formatter:off + public static final String DEFAULT_FW_PATH = TransformationTestResources.getQemuFirmwareSpecPath(); public static final String DEFAULT_VM_NAME = "archlinux"; public static final String DEFAULT_VM_UUID = "4ec504d5-5eac-482f-a344-dbf1dd4956c8"; public static final String DEFAULT_VM_DSPLNAME = "Archlinux"; @@ -40,6 +41,8 @@ public class TransformationTestUtils // @formatter:on private static final String[] DEFAULT_CMDLN_ARGS = { + CommandLineArgsTest.CMDLN_PREFIX_OPTION_LONG + CmdLnOption.FIRMWARE.getLongOption(), + TransformationTestUtils.DEFAULT_FW_PATH, CommandLineArgsTest.CMDLN_PREFIX_OPTION_LONG + CmdLnOption.VM_NAME.getLongOption(), TransformationTestUtils.DEFAULT_VM_NAME, CommandLineArgsTest.CMDLN_PREFIX_OPTION_LONG + CmdLnOption.VM_UUID.getLongOption(), |