test: add unit test for func MaxQemuVCPUs

we should add unit test for func MaxQemuVCPUS in qemu_amd64_test.go

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Wei Chen <Wei.Chen@arm.com>
This commit is contained in:
root 2018-08-27 15:08:06 +08:00
parent c4ded6ee5e
commit 2d13c4653d

View File

@ -7,6 +7,10 @@ package virtcontainers
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"runtime"
"testing"
govmmQemu "github.com/intel/govmm/qemu"
@ -50,3 +54,52 @@ func TestQemuArm64MemoryTopology(t *testing.T) {
m := arm64.memoryTopology(mem, hostMem)
assert.Equal(expectedMemory, m)
}
func TestMaxQemuVCPUs(t *testing.T) {
assert := assert.New(t)
type testData struct {
contents string
expectedResult uint32
}
data := []testData{
{"", uint32(runtime.NumCPU())},
{" 1: 0 0 GICv2 25 Level vgic \n", uint32(8)},
{" 1: 0 0 GICv3 25 Level vgic \n", uint32(123)},
{" 1: 0 0 GICv4 25 Level vgic \n", uint32(123)},
}
tmpdir, err := ioutil.TempDir("", "")
if err != nil {
panic(err)
}
defer os.RemoveAll(tmpdir)
savedGicProfile := gicProfile
testGicProfile := filepath.Join(tmpdir, "interrupts")
// override
gicProfile = testGicProfile
defer func() {
gicProfile = savedGicProfile
}()
savedHostGICVersion := hostGICVersion
defer func() {
hostGICVersion = savedHostGICVersion
}()
for _, d := range data {
err := ioutil.WriteFile(gicProfile, []byte(d.contents), os.FileMode(0640))
assert.NoError(err)
hostGICVersion = getHostGICVersion()
vCPUs := MaxQemuVCPUs()
assert.Equal(d.expectedResult, vCPUs)
}
}