mirror of
https://github.com/aljazceru/kata-containers.git
synced 2026-01-10 01:44:21 +01:00
Firecracker's revertBytes function, now called "RevertBytes", can be exposed as part of the virtcontainers' utils file, as this function will be reused by Cloud Hypervisor, when adding the rate limiter logic there. Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
85 lines
1.8 KiB
Go
85 lines
1.8 KiB
Go
//go:build linux
|
|
// +build linux
|
|
|
|
// Copyright (c) 2019 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package virtcontainers
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFCGenerateSocket(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
fc := firecracker{}
|
|
i, err := fc.GenerateSocket("a")
|
|
assert.NoError(err)
|
|
assert.NotNil(i)
|
|
|
|
hvsock, ok := i.(types.HybridVSock)
|
|
assert.True(ok)
|
|
assert.NotEmpty(hvsock.UdsPath)
|
|
|
|
// Path must be absolute
|
|
assert.True(strings.HasPrefix(hvsock.UdsPath, "/"))
|
|
|
|
assert.NotZero(hvsock.Port)
|
|
}
|
|
|
|
func TestFCTruncateID(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
fc := firecracker{}
|
|
|
|
testLongID := "3ef98eb7c6416be11e0accfed2f4e6560e07f8e33fa8d31922fd4d61747d7ead"
|
|
expectedID := "3ef98eb7c6416be11e0accfed2f4e656"
|
|
id := fc.truncateID(testLongID)
|
|
assert.Equal(expectedID, id)
|
|
|
|
testShortID := "3ef98eb7c6416be11"
|
|
expectedID = "3ef98eb7c6416be11"
|
|
id = fc.truncateID(testShortID)
|
|
assert.Equal(expectedID, id)
|
|
}
|
|
|
|
func TestFCParseVersion(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
fc := firecracker{}
|
|
|
|
for rawVersion, v := range map[string]string{"Firecracker v0.23.1": "0.23.1", "Firecracker v0.25.0\nSupported snapshot data format versions: 0.23.0": "0.25.0"} {
|
|
parsedVersion, err := fc.parseVersion(rawVersion)
|
|
assert.NoError(err)
|
|
assert.Equal(parsedVersion, v)
|
|
}
|
|
}
|
|
|
|
func TestFcSetConfig(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
config := HypervisorConfig{
|
|
HypervisorPath: "/some/where/firecracker",
|
|
KernelPath: "/some/where/kernel",
|
|
ImagePath: "/some/where/image",
|
|
JailerPath: "/some/where/jailer",
|
|
Debug: true,
|
|
}
|
|
|
|
fc := firecracker{}
|
|
|
|
assert.Equal(fc.config, HypervisorConfig{})
|
|
|
|
err := fc.setConfig(&config)
|
|
assert.NoError(err)
|
|
|
|
assert.Equal(fc.config, config)
|
|
}
|