gitee.com/leisunstar/runtime@v0.0.0-20200521203717-5cef3e7b53f9/virtcontainers/types/bridges_test.go (about) 1 // Copyright (c) 2017 Intel Corporation 2 // 3 // SPDX-License-Identifier: Apache-2.0 4 // 5 6 package types 7 8 import ( 9 "fmt" 10 "testing" 11 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func testAddRemoveDevice(t *testing.T, b *Bridge) { 16 assert := assert.New(t) 17 18 // add device 19 devID := "abc123" 20 21 addr, err := b.AddDevice(devID) 22 assert.NoError(err) 23 if addr < 1 { 24 assert.Fail("address cannot be less than 1") 25 } 26 27 // remove device 28 err = b.RemoveDevice("") 29 assert.Error(err) 30 31 err = b.RemoveDevice(devID) 32 assert.NoError(err) 33 34 // add device when the bridge is full 35 b.Devices = make(map[uint32]string) 36 for i := uint32(1); i <= b.MaxCapacity; i++ { 37 b.Devices[i] = fmt.Sprintf("%d", i) 38 } 39 addr, err = b.AddDevice(devID) 40 assert.Error(err) 41 if addr != 0 { 42 assert.Fail("address should be 0") 43 } 44 } 45 46 func TestAddRemoveDevicePCI(t *testing.T) { 47 48 // create a pci bridge 49 bridges := []*Bridge{{make(map[uint32]string), "rgb123", 5, PCI, PCIBridgeMaxCapacity}} 50 51 testAddRemoveDevice(t, bridges[0]) 52 } 53 54 func TestAddRemoveDeviceCCW(t *testing.T) { 55 56 // create a CCW bridge 57 bridges := []*Bridge{{make(map[uint32]string), "rgb123", 5, CCW, CCWBridgeMaxCapacity}} 58 59 testAddRemoveDevice(t, bridges[0]) 60 }