2023-08-13 15:59:05 +00:00
|
|
|
package prober
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestEfiFomBootMgr(t *testing.T) {
|
|
|
|
t.Run("OK - Windows", func(t *testing.T) {
|
|
|
|
rawVal := (`Boot0000* Windows Boot Manager HD(1,GPT,4ad714ba-6a01-4f76-90e3-1bb93a59b67e,0x800,0x32000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)` +
|
|
|
|
`57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d00`)
|
2023-08-19 08:54:18 +00:00
|
|
|
expected := EfiApp{ID: 0, Name: "Windows Boot Manager", Path: `\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI`, Active: true, DiskID: "4ad714ba-6a01-4f76-90e3-1bb93a59b67e"}
|
2023-08-13 15:59:05 +00:00
|
|
|
app, ok := efiAppFromBootMgrOutput(rawVal, 0)
|
|
|
|
assert.True(t, ok)
|
|
|
|
assert.Equal(t, expected, app)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("OK - Manjaro", func(t *testing.T) {
|
|
|
|
rawVal := `Boot0001* Manjaro HD(1,GPT,16f06d01-50da-6544-86bd-f3457f980086,0x1000,0x96000)/File(\EFI\MANJARO\GRUBX64.EFI)`
|
2023-08-19 08:54:18 +00:00
|
|
|
expected := EfiApp{ID: 1, Name: "Manjaro", Path: `\EFI\MANJARO\GRUBX64.EFI`, Active: false, DiskID: "16f06d01-50da-6544-86bd-f3457f980086"}
|
2023-08-13 15:59:05 +00:00
|
|
|
app, ok := efiAppFromBootMgrOutput(rawVal, 0)
|
|
|
|
assert.True(t, ok)
|
|
|
|
assert.Equal(t, expected, app)
|
|
|
|
})
|
|
|
|
|
2023-08-22 20:39:23 +00:00
|
|
|
t.Run("OK - SystemdBoot VM", func(t *testing.T) {
|
|
|
|
rawVal := `Boot0001* SYSTEMD_BOOT PciRoot(0x0)/Pci(0x1f,0x2)/Sata(0,65535,0)/HD(1,GPT,c4540877-4592-494f-bd8a-2a23abb22c3f,0x800,0x100000)/File(\EFI\systemd\systemd-bootx64.efi)`
|
|
|
|
expected := EfiApp{ID: 1, Name: "SYSTEMD_BOOT", Path: `\EFI\systemd\systemd-bootx64.efi`, Active: false, DiskID: "c4540877-4592-494f-bd8a-2a23abb22c3f"}
|
|
|
|
app, ok := efiAppFromBootMgrOutput(rawVal, 0)
|
|
|
|
assert.True(t, ok)
|
|
|
|
assert.Equal(t, expected, app)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("OK - HTTP_BOOT hexa", func(t *testing.T) {
|
|
|
|
rawVal := `Boot000A* httpboot.efi HD(1,GPT,c4540877-4592-494f-bd8a-2a23abb22c3f,0x800,0x100000)/File(\EFI\httpboot\httpboot.efi)`
|
|
|
|
expected := EfiApp{ID: 10, Name: "httpboot.efi", Path: `\EFI\httpboot\httpboot.efi`, Active: false, DiskID: "c4540877-4592-494f-bd8a-2a23abb22c3f"}
|
|
|
|
app, ok := efiAppFromBootMgrOutput(rawVal, 0)
|
|
|
|
assert.True(t, ok)
|
|
|
|
assert.Equal(t, expected, app)
|
|
|
|
})
|
|
|
|
|
2023-08-13 15:59:05 +00:00
|
|
|
t.Run("OK - EFI Base", func(t *testing.T) {
|
|
|
|
rawVal := `Boot0002* UEFI OS HD(1,GPT,16f06d01-50da-6544-86bd-f3457f980086,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)0000424f`
|
2023-08-19 08:54:18 +00:00
|
|
|
expected := EfiApp{ID: 2, Name: "UEFI OS", Path: `\EFI\BOOT\BOOTX64.EFI`, Active: false, DiskID: "16f06d01-50da-6544-86bd-f3457f980086"}
|
2023-08-13 15:59:05 +00:00
|
|
|
app, ok := efiAppFromBootMgrOutput(rawVal, 0)
|
|
|
|
assert.True(t, ok)
|
|
|
|
assert.Equal(t, expected, app)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("NOK - CD", func(t *testing.T) {
|
|
|
|
rawVal := `Boot0003* UEFI:CD/DVD Drive BBS(129,,0x0)`
|
|
|
|
_, ok := efiAppFromBootMgrOutput(rawVal, 0)
|
|
|
|
assert.False(t, ok)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("NOK - Other line", func(t *testing.T) {
|
|
|
|
rawVal := `BootOrder: 0001,0002,0000,0003,0004,0005`
|
|
|
|
_, ok := efiAppFromBootMgrOutput(rawVal, 0)
|
|
|
|
assert.False(t, ok)
|
|
|
|
})
|
|
|
|
}
|