mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-19 07:14:22 +01:00
runtime: move all code to src/runtime
To prepare for merging into kata-containers repository. Signed-off-by: Peng Tao <bergwolf@hyper.sh>
This commit is contained in:
123
src/runtime/virtcontainers/endpoint_test.go
Normal file
123
src/runtime/virtcontainers/endpoint_test.go
Normal file
@@ -0,0 +1,123 @@
|
||||
// Copyright (c) 2018 Intel Corporation
|
||||
//
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
package virtcontainers
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func testEndpointTypeSet(t *testing.T, value string, expected EndpointType) {
|
||||
var endpointType EndpointType
|
||||
|
||||
err := endpointType.Set(value)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, endpointType, expected)
|
||||
}
|
||||
|
||||
func TestPhysicalEndpointTypeSet(t *testing.T) {
|
||||
testEndpointTypeSet(t, "physical", PhysicalEndpointType)
|
||||
}
|
||||
|
||||
func TestVethEndpointTypeSet(t *testing.T) {
|
||||
testEndpointTypeSet(t, "virtual", VethEndpointType)
|
||||
}
|
||||
|
||||
func TestVhostUserEndpointTypeSet(t *testing.T) {
|
||||
testEndpointTypeSet(t, "vhost-user", VhostUserEndpointType)
|
||||
}
|
||||
|
||||
func TestBridgedMacvlanEndpointTypeSet(t *testing.T) {
|
||||
testEndpointTypeSet(t, "macvlan", BridgedMacvlanEndpointType)
|
||||
}
|
||||
|
||||
func TestMacvtapEndpointTypeSet(t *testing.T) {
|
||||
testEndpointTypeSet(t, "macvtap", MacvtapEndpointType)
|
||||
}
|
||||
|
||||
func TestEndpointTypeSetFailure(t *testing.T) {
|
||||
var endpointType EndpointType
|
||||
|
||||
assert.Error(t, endpointType.Set("wrong-value"))
|
||||
}
|
||||
|
||||
func testEndpointTypeString(t *testing.T, endpointType *EndpointType, expected string) {
|
||||
result := endpointType.String()
|
||||
assert.Equal(t, result, expected)
|
||||
}
|
||||
|
||||
func TestPhysicalEndpointTypeString(t *testing.T) {
|
||||
endpointType := PhysicalEndpointType
|
||||
testEndpointTypeString(t, &endpointType, string(PhysicalEndpointType))
|
||||
}
|
||||
|
||||
func TestVethEndpointTypeString(t *testing.T) {
|
||||
endpointType := VethEndpointType
|
||||
testEndpointTypeString(t, &endpointType, string(VethEndpointType))
|
||||
}
|
||||
|
||||
func TestVhostUserEndpointTypeString(t *testing.T) {
|
||||
endpointType := VhostUserEndpointType
|
||||
testEndpointTypeString(t, &endpointType, string(VhostUserEndpointType))
|
||||
}
|
||||
|
||||
func TestBridgedMacvlanEndpointTypeString(t *testing.T) {
|
||||
endpointType := BridgedMacvlanEndpointType
|
||||
testEndpointTypeString(t, &endpointType, string(BridgedMacvlanEndpointType))
|
||||
}
|
||||
|
||||
func TestMacvtapEndpointTypeString(t *testing.T) {
|
||||
endpointType := MacvtapEndpointType
|
||||
testEndpointTypeString(t, &endpointType, string(MacvtapEndpointType))
|
||||
}
|
||||
|
||||
func TestIncorrectEndpointTypeString(t *testing.T) {
|
||||
var endpointType EndpointType
|
||||
testEndpointTypeString(t, &endpointType, "")
|
||||
}
|
||||
|
||||
func TestSaveLoadIfPair(t *testing.T) {
|
||||
macAddr := net.HardwareAddr{0x02, 0x00, 0xCA, 0xFE, 0x00, 0x04}
|
||||
|
||||
tmpfile, err := ioutil.TempFile("", "vc-save-load-net-")
|
||||
assert.Nil(t, err)
|
||||
defer os.Remove(tmpfile.Name())
|
||||
|
||||
netPair := &NetworkInterfacePair{
|
||||
TapInterface: TapInterface{
|
||||
ID: "uniqueTestID-4",
|
||||
Name: "br4_kata",
|
||||
TAPIface: NetworkInterface{
|
||||
Name: "tap4_kata",
|
||||
HardAddr: macAddr.String(),
|
||||
},
|
||||
VMFds: []*os.File{tmpfile}, // won't be saved to disk
|
||||
VhostFds: []*os.File{tmpfile}, // won't be saved to disk
|
||||
},
|
||||
VirtIface: NetworkInterface{
|
||||
Name: "eth4",
|
||||
HardAddr: macAddr.String(),
|
||||
},
|
||||
NetInterworkingModel: DefaultNetInterworkingModel,
|
||||
}
|
||||
|
||||
// Save to disk then load it back.
|
||||
savedIfPair := saveNetIfPair(netPair)
|
||||
loadedIfPair := loadNetIfPair(savedIfPair)
|
||||
|
||||
// Since VMFds and VhostFds are't saved, netPair and loadedIfPair are not equal.
|
||||
assert.False(t, reflect.DeepEqual(netPair, loadedIfPair))
|
||||
|
||||
netPair.TapInterface.VMFds = nil
|
||||
netPair.TapInterface.VhostFds = nil
|
||||
// They are equal now.
|
||||
assert.True(t, reflect.DeepEqual(netPair, loadedIfPair))
|
||||
}
|
||||
Reference in New Issue
Block a user