mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-30 17:22:33 +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 {
|
func (q *qemu) removeDeviceFromBridge(ID string) error {
|
||||||
|
@ -7,6 +7,7 @@ package virtcontainers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
@ -443,3 +444,41 @@ func TestQemuGrpc(t *testing.T) {
|
|||||||
|
|
||||||
assert.True(q.id == q2.id)
|
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