runtime: Add test cases for checkPCIeConfig

These test cases shows which options are valid for CLH/Qemu, and test that we
correctly catch unsupported combinations.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
This commit is contained in:
Jeremi Piotrowski 2023-09-08 15:12:31 +02:00
parent fc51e4b9eb
commit 7c4e73b609

View File

@ -18,8 +18,10 @@ import (
"syscall"
"testing"
config "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config"
ktu "github.com/kata-containers/kata-containers/src/runtime/pkg/katatestutils"
"github.com/kata-containers/kata-containers/src/runtime/pkg/oci"
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers"
vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers"
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/compatoci"
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/vcmock"
@ -419,3 +421,32 @@ func TestCreateContainer(t *testing.T) {
assert.NoError(err)
}
}
func TestVfioChecksClh(t *testing.T) {
assert := assert.New(t)
// Check valid CLH vfio configs
f := func(coldPlug, hotPlug config.PCIePort) error {
return checkPCIeConfig(coldPlug, hotPlug, defaultMachineType, virtcontainers.ClhHypervisor)
}
assert.NoError(f(config.NoPort, config.NoPort))
assert.NoError(f(config.NoPort, config.RootPort))
assert.Error(f(config.RootPort, config.RootPort))
assert.Error(f(config.RootPort, config.NoPort))
assert.Error(f(config.NoPort, config.SwitchPort))
}
func TestVfioCheckQemu(t *testing.T) {
assert := assert.New(t)
// Check valid Qemu vfio configs
f := func(coldPlug, hotPlug config.PCIePort) error {
return checkPCIeConfig(coldPlug, hotPlug, defaultMachineType, virtcontainers.QemuHypervisor)
}
assert.NoError(f(config.NoPort, config.NoPort))
assert.NoError(f(config.RootPort, config.NoPort))
assert.NoError(f(config.NoPort, config.RootPort))
assert.Error(f(config.RootPort, config.RootPort))
assert.Error(f(config.SwitchPort, config.RootPort))
}