virtcontainers: remove temp dir created for vsock in test code

remove temp dir generated by mock.GenerateKataMockHybridVSock().

Fixes: #3186

Signed-off-by: zhanghj <zhanghj.lc@inspur.com>
This commit is contained in:
zhanghj 2022-02-19 16:36:31 +08:00
parent a671b455a2
commit 94b831ebf8
5 changed files with 28 additions and 7 deletions

View File

@ -170,10 +170,10 @@ func TestCreateSandboxKataAgentSuccessful(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
MockHybridVSockPath = url defer mock.RemoveKataMockHybridVSock(url)
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) err = hybridVSockTTRPCMock.Start(url)
assert.NoError(err) assert.NoError(err)
defer hybridVSockTTRPCMock.Stop() defer hybridVSockTTRPCMock.Stop()

View File

@ -7,7 +7,6 @@ package factory
import ( import (
"context" "context"
"fmt"
"os" "os"
"testing" "testing"
@ -61,10 +60,11 @@ func TestNewFactory(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
vc.MockHybridVSockPath = url vc.MockHybridVSockPath = url
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) err = hybridVSockTTRPCMock.Start(url)
assert.NoError(err) assert.NoError(err)
defer hybridVSockTTRPCMock.Stop() defer hybridVSockTTRPCMock.Stop()
@ -179,10 +179,11 @@ func TestFactoryGetVM(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
vc.MockHybridVSockPath = url vc.MockHybridVSockPath = url
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) err = hybridVSockTTRPCMock.Start(url)
assert.NoError(err) assert.NoError(err)
defer hybridVSockTTRPCMock.Stop() defer hybridVSockTTRPCMock.Stop()

View File

@ -51,10 +51,11 @@ func TestTemplateFactory(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
vc.MockHybridVSockPath = url vc.MockHybridVSockPath = url
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) err = hybridVSockTTRPCMock.Start(url)
assert.NoError(err) assert.NoError(err)
defer hybridVSockTTRPCMock.Stop() defer hybridVSockTTRPCMock.Stop()

View File

@ -50,6 +50,7 @@ func TestKataAgentConnect(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(url) err = hybridVSockTTRPCMock.Start(url)
@ -73,6 +74,7 @@ func TestKataAgentDisconnect(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(url) err = hybridVSockTTRPCMock.Start(url)
@ -110,6 +112,7 @@ func TestKataAgentSendReq(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(url) err = hybridVSockTTRPCMock.Start(url)
@ -843,6 +846,7 @@ func TestAgentCreateContainer(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(url) err = hybridVSockTTRPCMock.Start(url)
@ -873,6 +877,7 @@ func TestAgentNetworkOperation(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(url) err = hybridVSockTTRPCMock.Start(url)
@ -921,6 +926,7 @@ func TestKataCopyFile(t *testing.T) {
url, err := mock.GenerateKataMockHybridVSock() url, err := mock.GenerateKataMockHybridVSock()
assert.NoError(err) assert.NoError(err)
defer mock.RemoveKataMockHybridVSock(url)
hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{}
err = hybridVSockTTRPCMock.Start(url) err = hybridVSockTTRPCMock.Start(url)

View File

@ -16,9 +16,13 @@ import (
gpb "github.com/gogo/protobuf/types" gpb "github.com/gogo/protobuf/types"
aTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols" aTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols"
pb "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/grpc" pb "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/grpc"
"path"
"strings"
) )
var testKataMockHybridVSockURLTempl = "mock://%s/kata-mock-hybrid-vsock.sock" const VSockPrefix = "mock://"
var testKataMockHybridVSockURLTempl = VSockPrefix + "%s/kata-mock-hybrid-vsock.sock"
func GenerateKataMockHybridVSock() (string, error) { func GenerateKataMockHybridVSock() (string, error) {
dir, err := os.MkdirTemp("", "kata-mock-hybrid-vsock-test") dir, err := os.MkdirTemp("", "kata-mock-hybrid-vsock-test")
@ -29,6 +33,15 @@ func GenerateKataMockHybridVSock() (string, error) {
return fmt.Sprintf(testKataMockHybridVSockURLTempl, dir), nil return fmt.Sprintf(testKataMockHybridVSockURLTempl, dir), nil
} }
func RemoveKataMockHybridVSock(sockAddress string) error {
if !strings.HasPrefix(sockAddress, VSockPrefix) {
return fmt.Errorf("Invalid socket address: %s", sockAddress)
}
sockPath := strings.TrimPrefix(sockAddress, VSockPrefix)
return os.RemoveAll(path.Dir(sockPath))
}
// HybridVSockTTRPCMock is the ttrpc-based mock hybrid-vsock backend implementation // HybridVSockTTRPCMock is the ttrpc-based mock hybrid-vsock backend implementation
type HybridVSockTTRPCMock struct { type HybridVSockTTRPCMock struct {
// HybridVSockTTRPCMockImp is the structure implementing // HybridVSockTTRPCMockImp is the structure implementing