vm-import-controller/pkg/source/helper_test.go
2025-05-06 10:19:12 +02:00

59 lines
1.5 KiB
Go

package source
import (
"testing"
"github.com/stretchr/testify/require"
kubevirt "kubevirt.io/api/core/v1"
)
func Test_vmSpecSetupUefiSettings(t *testing.T) {
assert := require.New(t)
testCases := []struct {
desc string
secureBoot bool
tpm bool
}{
{
desc: "SecureBoot enabled, TPM disabled",
secureBoot: true,
tpm: false,
}, {
desc: "SecureBoot disabled, TPM enabled",
secureBoot: false,
tpm: true,
}, {
desc: "SecureBoot enabled, TPM enabled",
secureBoot: true,
tpm: true,
}, {
desc: "SecureBoot disabled, TPM disabled",
secureBoot: false,
tpm: false,
},
}
for _, tc := range testCases {
vmSpec := kubevirt.VirtualMachineSpec{
Template: &kubevirt.VirtualMachineInstanceTemplateSpec{
Spec: kubevirt.VirtualMachineInstanceSpec{
Domain: kubevirt.DomainSpec{
Features: &kubevirt.Features{},
},
},
},
}
VMSpecSetupUEFISettings(&vmSpec, tc.secureBoot, tc.tpm)
if tc.secureBoot {
assert.True(*vmSpec.Template.Spec.Domain.Firmware.Bootloader.EFI.SecureBoot, "expected SecureBoot to be enabled")
} else {
assert.False(*vmSpec.Template.Spec.Domain.Firmware.Bootloader.EFI.SecureBoot, "expected SecureBoot to be disabled")
}
if tc.secureBoot || tc.tpm {
assert.True(*vmSpec.Template.Spec.Domain.Features.SMM.Enabled, "expected SMM to be enabled")
} else {
assert.Nil(vmSpec.Template.Spec.Domain.Features.SMM, "expected SMM to be nil")
}
}
}