diff options
Diffstat (limited to 'src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java')
-rw-r--r-- | src/test/java/org/openslx/firmware/QemuFirmwareUtilTest.java | 98 |
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" ) ); + } +} |