mirror of
https://github.com/aljazceru/kata-containers.git
synced 2026-01-23 08:14:35 +01:00
Add hugepages support, port from:
b486387cba
Signed-off-by: Pradipta Banerjee <pradipta.banerjee@gmail.com>
Signed-off-by: bin <bin@hyper.sh>
82 lines
1.8 KiB
Go
82 lines
1.8 KiB
Go
// Copyright (c) 2018 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package utils
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"os/exec"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFindContextID(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
ioctlFunc = func(fd uintptr, request, arg1 uintptr) error {
|
|
return errors.New("ioctl")
|
|
}
|
|
|
|
orgVHostVSockDevicePath := VHostVSockDevicePath
|
|
orgMaxUInt := maxUInt
|
|
defer func() {
|
|
VHostVSockDevicePath = orgVHostVSockDevicePath
|
|
maxUInt = orgMaxUInt
|
|
}()
|
|
VHostVSockDevicePath = "/dev/null"
|
|
maxUInt = uint64(1000000)
|
|
|
|
f, cid, err := FindContextID()
|
|
assert.Nil(f)
|
|
assert.Zero(cid)
|
|
assert.Error(err)
|
|
}
|
|
|
|
func TestGetDevicePathAndFsTypeOptionsEmptyMount(t *testing.T) {
|
|
assert := assert.New(t)
|
|
_, _, _, err := GetDevicePathAndFsTypeOptions("")
|
|
assert.Error(err)
|
|
}
|
|
|
|
func TestGetDevicePathAndFsTypeOptionsSuccessful(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
cmdStr := "grep ^proc /proc/mounts"
|
|
cmd := exec.Command("sh", "-c", cmdStr)
|
|
output, err := cmd.Output()
|
|
assert.NoError(err)
|
|
|
|
data := bytes.Split(output, []byte(" "))
|
|
fstypeOut := string(data[2])
|
|
optsOut := strings.Split(string(data[3]), ",")
|
|
|
|
path, fstype, fsOptions, err := GetDevicePathAndFsTypeOptions("/proc")
|
|
assert.NoError(err)
|
|
|
|
assert.Equal(path, "proc")
|
|
assert.Equal(fstype, "proc")
|
|
assert.Equal(fstype, fstypeOut)
|
|
assert.Equal(fsOptions, optsOut)
|
|
}
|
|
|
|
func TestIsAPVFIOMediatedDeviceFalse(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
// Should be false for a PCI device
|
|
isAPMdev := IsAPVFIOMediatedDevice("/sys/bus/pci/devices/0000:00:02.0/a297db4a-f4c2-11e6-90f6-d3b88d6c9525")
|
|
assert.False(isAPMdev)
|
|
}
|
|
|
|
func TestIsAPVFIOMediatedDeviceTrue(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
// Typical AP sysfsdev
|
|
isAPMdev := IsAPVFIOMediatedDevice("/sys/devices/vfio_ap/matrix/a297db4a-f4c2-11e6-90f6-d3b88d6c9525")
|
|
assert.True(isAPMdev)
|
|
}
|