mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-30 09:13:29 +00:00
test: add test for addDeviceToBridge
add test for addDeviceToBridge in three case 1. addDeviceToBridge successful 2. fail cause no more available bridge slot 3. fail cause state.bridge == 0 Signed-off-by: Ace-Tang <aceapril@126.com>
This commit is contained in:
parent
c7ace4b4bc
commit
502fdab75e
@ -768,7 +768,7 @@ func (q *qemu) addDeviceToBridge(ID string) (string, types.PCIBridge, error) {
|
||||
}
|
||||
}
|
||||
|
||||
return "", types.PCIBridge{}, err
|
||||
return "", types.PCIBridge{}, fmt.Errorf("no more bridge slots available")
|
||||
}
|
||||
|
||||
func (q *qemu) removeDeviceFromBridge(ID string) error {
|
||||
|
@ -7,6 +7,7 @@ package virtcontainers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
@ -443,3 +444,41 @@ func TestQemuGrpc(t *testing.T) {
|
||||
|
||||
assert.True(q.id == q2.id)
|
||||
}
|
||||
|
||||
func TestQemuAddDeviceToBridge(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
config := newQemuConfig()
|
||||
config.DefaultBridges = defaultBridges
|
||||
|
||||
// addDeviceToBridge successfully
|
||||
config.HypervisorMachineType = QemuPC
|
||||
q := &qemu{
|
||||
config: config,
|
||||
arch: newQemuArch(config),
|
||||
}
|
||||
|
||||
q.state.Bridges = q.arch.bridges(q.config.DefaultBridges)
|
||||
// get pciBridgeMaxCapacity value from virtcontainers/types/pci.go
|
||||
const pciBridgeMaxCapacity = 30
|
||||
for i := uint32(1); i <= pciBridgeMaxCapacity; i++ {
|
||||
_, _, err := q.addDeviceToBridge(fmt.Sprintf("qemu-bridge-%d", i))
|
||||
assert.Nil(err)
|
||||
}
|
||||
|
||||
// fail to add device to bridge cause no more available bridge slot
|
||||
_, _, err := q.addDeviceToBridge("qemu-bridge-31")
|
||||
exceptErr := errors.New("no more bridge slots available")
|
||||
assert.Equal(exceptErr, err)
|
||||
|
||||
// addDeviceToBridge fails cause q.state.Bridges == 0
|
||||
config.HypervisorMachineType = QemuPCLite
|
||||
q = &qemu{
|
||||
config: config,
|
||||
arch: newQemuArch(config),
|
||||
}
|
||||
q.state.Bridges = q.arch.bridges(q.config.DefaultBridges)
|
||||
_, _, err = q.addDeviceToBridge("qemu-bridge")
|
||||
exceptErr = errors.New("failed to get available address from bridges")
|
||||
assert.Equal(exceptErr, err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user