summaryrefslogtreecommitdiffstats
path: root/src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java')
-rw-r--r--src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java b/src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java
new file mode 100644
index 0000000..75ce286
--- /dev/null
+++ b/src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java
@@ -0,0 +1,98 @@
+package org.openslx.firmware;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+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.libvirt.domain.DomainTest;
+
+public class QemuFirmwareUtilTest
+{
+ @Test
+ @DisplayName( "Test that lookup of OS loader from Libvirt domain file succeeds" )
+ public void testQemuFirmwareUtilLookupTargetOsLoaderValid() throws FirmwareException
+ {
+ final String fwSpecPath = QemuFirmwareTestResources.getQemuFirmwareSpecPath();
+ final Domain config = DomainTest
+ .getDomain( "qemu-kvm_default-ubuntu-20-04-vm_transform-non-persistent_uefi.xml" );
+
+ final String targetOsLoader = QemuFirmwareUtil.lookupTargetOsLoader( fwSpecPath, config.getOsLoader(),
+ config.getOsArch(), config.getOsMachine() );
+
+ assertEquals( Paths.get( "/usr/share/qemu/edk2-x86_64-code.fd" ).toString(), targetOsLoader );
+ }
+
+ @Test
+ @DisplayName( "Test that lookup of OS loader from Archlinux path succeeds" )
+ public void testQemuFirmwareUtilLookupTargetOsLoaderValidArchlinux() throws FirmwareException
+ {
+ final String fwSpecPath = QemuFirmwareTestResources.getQemuFirmwareSpecPath();
+
+ final String targetOsLoader = QemuFirmwareUtil.lookupTargetOsLoader( fwSpecPath,
+ "/usr/share/edk2-ovmf/x64/OVMF_CODE.fd", "x86_64", "pc-q35-5.0" );
+
+ assertEquals( Paths.get( "/usr/share/qemu/edk2-x86_64-code.fd" ).toString(), targetOsLoader );
+ }
+
+ @Test
+ @DisplayName( "Test that lookup of OS loader from Debian path succeeds" )
+ public void testQemuFirmwareUtilLookupTargetOsLoaderValidDebian() throws FirmwareException
+ {
+ final String fwSpecPath = QemuFirmwareTestResources.getQemuFirmwareSpecPath();
+
+ final String targetOsLoader = QemuFirmwareUtil.lookupTargetOsLoader( fwSpecPath,
+ "/usr/share/OVMF/OVMF_CODE.fd", "x86_64", "pc-q35-5.0" );
+
+ assertEquals( Paths.get( "/usr/share/qemu/edk2-x86_64-code.fd" ).toString(), targetOsLoader );
+ }
+
+ @Test
+ @DisplayName( "Test that lookup of OS loader from CentOS path succeeds" )
+ public void testQemuFirmwareUtilLookupTargetOsLoaderValidCentOs() throws FirmwareException
+ {
+ final String fwSpecPath = QemuFirmwareTestResources.getQemuFirmwareSpecPath();
+
+ final String targetOsLoader = QemuFirmwareUtil.lookupTargetOsLoader( fwSpecPath,
+ "/usr/share/edk2/ovmf/OVMF_CODE.cc.fd", "x86_64", "pc-q35-5.0" );
+
+ assertEquals( Paths.get( "/usr/share/qemu/edk2-x86_64-code.fd" ).toString(), targetOsLoader );
+ }
+
+ @Test
+ @DisplayName( "Test that lookup of OS loader from OpenSUSE path succeeds" )
+ public void testQemuFirmwareUtilLookupTargetOsLoaderValidOpenSuse() throws FirmwareException
+ {
+ final String fwSpecPath = QemuFirmwareTestResources.getQemuFirmwareSpecPath();
+
+ final String targetOsLoader = QemuFirmwareUtil.lookupTargetOsLoader( fwSpecPath,
+ "/usr/share/qemu/ovmf-x86_64-4m-code.bin", "x86_64", "pc-q35-5.0" );
+
+ assertEquals( Paths.get( "/usr/share/qemu/edk2-x86_64-code.fd" ).toString(), targetOsLoader );
+ }
+
+ @Test
+ @DisplayName( "Test that lookup of OS loader from Ubuntu path succeeds" )
+ public void testQemuFirmwareUtilLookupTargetOsLoaderValidUbuntu() throws FirmwareException
+ {
+ final String fwSpecPath = QemuFirmwareTestResources.getQemuFirmwareSpecPath();
+
+ final String targetOsLoader = QemuFirmwareUtil.lookupTargetOsLoader( fwSpecPath,
+ "/usr/share/OVMF/OVMF_CODE_4M.fd", "x86_64", "pc-q35-5.0" );
+
+ assertEquals( Paths.get( "/usr/share/qemu/edk2-x86_64-code.fd" ).toString(), targetOsLoader );
+ }
+
+ @Test
+ @DisplayName( "Test that lookup of non-existent OS loader for non-existent architecture fails" )
+ public void testQemuFirmwareUtilLookupTargetOsLoaderInvalid() throws FirmwareException
+ {
+ final String fwSpecPath = QemuFirmwareTestResources.getQemuFirmwareSpecPath();
+
+ assertThrows( FirmwareException.class, () -> QemuFirmwareUtil.lookupTargetOsLoader( fwSpecPath,
+ Paths.get( "/non/existent/loader.fd" ).toString(), "x87", "pc-q35-6.0" ) );
+ }
+}