diff --git a/src/runtime/virtcontainers/api_test.go b/src/runtime/virtcontainers/api_test.go index 3366041c6d..97ee76144d 100644 --- a/src/runtime/virtcontainers/api_test.go +++ b/src/runtime/virtcontainers/api_test.go @@ -170,10 +170,10 @@ func TestCreateSandboxKataAgentSuccessful(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) - MockHybridVSockPath = url + defer mock.RemoveKataMockHybridVSock(url) hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} - err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) + err = hybridVSockTTRPCMock.Start(url) assert.NoError(err) defer hybridVSockTTRPCMock.Stop() diff --git a/src/runtime/virtcontainers/factory/factory_test.go b/src/runtime/virtcontainers/factory/factory_test.go index 9cd5568b7c..71af52d71e 100644 --- a/src/runtime/virtcontainers/factory/factory_test.go +++ b/src/runtime/virtcontainers/factory/factory_test.go @@ -7,7 +7,6 @@ package factory import ( "context" - "fmt" "os" "testing" @@ -61,10 +60,11 @@ func TestNewFactory(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) vc.MockHybridVSockPath = url hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} - err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) + err = hybridVSockTTRPCMock.Start(url) assert.NoError(err) defer hybridVSockTTRPCMock.Stop() @@ -179,10 +179,11 @@ func TestFactoryGetVM(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) vc.MockHybridVSockPath = url hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} - err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) + err = hybridVSockTTRPCMock.Start(url) assert.NoError(err) defer hybridVSockTTRPCMock.Stop() diff --git a/src/runtime/virtcontainers/factory/template/template_test.go b/src/runtime/virtcontainers/factory/template/template_test.go index 9c8d5805a5..55c7bc5968 100644 --- a/src/runtime/virtcontainers/factory/template/template_test.go +++ b/src/runtime/virtcontainers/factory/template/template_test.go @@ -51,10 +51,11 @@ func TestTemplateFactory(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) vc.MockHybridVSockPath = url hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} - err = hybridVSockTTRPCMock.Start(fmt.Sprintf("mock://%s", url)) + err = hybridVSockTTRPCMock.Start(url) assert.NoError(err) defer hybridVSockTTRPCMock.Stop() diff --git a/src/runtime/virtcontainers/kata_agent_test.go b/src/runtime/virtcontainers/kata_agent_test.go index 6475e8b069..13dd9e1c9c 100644 --- a/src/runtime/virtcontainers/kata_agent_test.go +++ b/src/runtime/virtcontainers/kata_agent_test.go @@ -50,6 +50,7 @@ func TestKataAgentConnect(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} err = hybridVSockTTRPCMock.Start(url) @@ -73,6 +74,7 @@ func TestKataAgentDisconnect(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} err = hybridVSockTTRPCMock.Start(url) @@ -110,6 +112,7 @@ func TestKataAgentSendReq(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} err = hybridVSockTTRPCMock.Start(url) @@ -843,6 +846,7 @@ func TestAgentCreateContainer(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} err = hybridVSockTTRPCMock.Start(url) @@ -873,6 +877,7 @@ func TestAgentNetworkOperation(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} err = hybridVSockTTRPCMock.Start(url) @@ -921,6 +926,7 @@ func TestKataCopyFile(t *testing.T) { url, err := mock.GenerateKataMockHybridVSock() assert.NoError(err) + defer mock.RemoveKataMockHybridVSock(url) hybridVSockTTRPCMock := mock.HybridVSockTTRPCMock{} err = hybridVSockTTRPCMock.Start(url) diff --git a/src/runtime/virtcontainers/pkg/mock/mock.go b/src/runtime/virtcontainers/pkg/mock/mock.go index 4efdcb0add..de6f7aec38 100644 --- a/src/runtime/virtcontainers/pkg/mock/mock.go +++ b/src/runtime/virtcontainers/pkg/mock/mock.go @@ -16,9 +16,13 @@ import ( gpb "github.com/gogo/protobuf/types" 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" + "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) { dir, err := os.MkdirTemp("", "kata-mock-hybrid-vsock-test") @@ -29,6 +33,15 @@ func GenerateKataMockHybridVSock() (string, error) { 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 type HybridVSockTTRPCMock struct { // HybridVSockTTRPCMockImp is the structure implementing