mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-22 20:39:41 +00:00
Pass the slot address while attaching bridges. This is needed to determine the pci/e address of devices that are attached to the bridge. Fixes #210 Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
48 lines
924 B
Go
48 lines
924 B
Go
// Copyright (c) 2017 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package virtcontainers
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestAddRemoveDevice(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
// create a bridge
|
|
bridges := []*Bridge{{make(map[uint32]string), pciBridge, "rgb123", 5}}
|
|
|
|
// add device
|
|
devID := "abc123"
|
|
b := bridges[0]
|
|
addr, err := b.addDevice(devID)
|
|
assert.NoError(err)
|
|
if addr < 1 {
|
|
assert.Fail("address cannot be less than 1")
|
|
}
|
|
|
|
// remove device
|
|
err = b.removeDevice("")
|
|
assert.Error(err)
|
|
|
|
err = b.removeDevice(devID)
|
|
assert.NoError(err)
|
|
|
|
// add device when the bridge is full
|
|
bridges[0].Address = make(map[uint32]string)
|
|
for i := uint32(1); i <= pciBridgeMaxCapacity; i++ {
|
|
bridges[0].Address[i] = fmt.Sprintf("%d", i)
|
|
}
|
|
addr, err = b.addDevice(devID)
|
|
assert.Error(err)
|
|
if addr != 0 {
|
|
assert.Fail("address should be 0")
|
|
}
|
|
}
|