Skip to content

Commit

Permalink
Merge pull request #435 from YOU54F/fix/zombie_plugin_processes
Browse files Browse the repository at this point in the history
fix: zombie plugin processes
  • Loading branch information
mefellows authored Jul 4, 2024
2 parents 43d1bda + 4297634 commit cd75a5e
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 9 deletions.
1 change: 1 addition & 0 deletions consumer/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ func (p *httpMockProvider) ExecuteTest(t *testing.T, integrationTest func(MockSe
// Clear state between tests
func (p *httpMockProvider) reset() {
p.mockserver.CleanupMockServer(p.config.Port)
p.mockserver.CleanupPlugins()
p.config.Port = 0
err := p.configure()
if err != nil {
Expand Down
5 changes: 5 additions & 0 deletions internal/native/message_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ func TestGetPluginSyncMessageContentsAsBytes(t *testing.T) {
m := NewMessageServer("test-message-consumer", "test-message-provider")

// Protobuf plugin test
defer m.CleanupPlugins()
err := m.UsingPlugin("protobuf", "0.3.15")
assert.NoError(t, err)

Expand Down Expand Up @@ -268,6 +269,7 @@ func TestGetPluginSyncMessageContentsAsBytes_EmptyResponse(t *testing.T) {
m := NewMessageServer("test-message-consumer", "test-message-provider")

// Protobuf plugin test
defer m.CleanupPlugins()
err := m.UsingPlugin("protobuf", "0.3.15")
assert.NoError(t, err)

Expand Down Expand Up @@ -314,6 +316,7 @@ func TestGetPluginAsyncMessageContentsAsBytes(t *testing.T) {
m := NewMessageServer("test-message-consumer", "test-message-provider")

// Protobuf plugin test
defer m.CleanupPlugins()
_ = m.UsingPlugin("protobuf", "0.3.15")

i := m.NewAsyncMessageInteraction("grpc interaction")
Expand Down Expand Up @@ -354,6 +357,7 @@ func TestGrpcPluginInteraction(t *testing.T) {
m := NewMessageServer("test-message-consumer", "test-message-provider")

// Protobuf plugin test
defer m.CleanupPlugins()
_ = m.UsingPlugin("protobuf", "0.3.15")

i := m.NewSyncMessageInteraction("grpc interaction")
Expand Down Expand Up @@ -431,6 +435,7 @@ func TestGrpcPluginInteraction_ErrorResponse(t *testing.T) {
m := NewMessageServer("test-message-consumer", "test-message-provider")

// Protobuf plugin test
defer m.CleanupPlugins()
_ = m.UsingPlugin("protobuf", "0.3.15")

i := m.NewSyncMessageInteraction("grpc interaction")
Expand Down
1 change: 1 addition & 0 deletions internal/native/mock_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ func TestPluginInteraction(t *testing.T) {
m := NewHTTPPact("test-plugin-consumer", "test-plugin-provider")

// Protobuf plugin test
defer m.CleanupPlugins()
_ = m.UsingPlugin("protobuf", "0.3.15")
m.WithSpecificationVersion(SPECIFICATION_VERSION_V4)

Expand Down
7 changes: 3 additions & 4 deletions message/v4/asynchronous_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ type AsynchronousMessageWithPluginContents struct {
}

func (s *AsynchronousMessageWithPluginContents) ExecuteTest(t *testing.T, integrationTest func(m AsynchronousMessage) error) error {
defer s.rootBuilder.pact.messageserver.CleanupPlugins()
message, err := getAsynchronousMessageWithReifiedContents(s.rootBuilder.messageHandle, s.rootBuilder.Type)
if err != nil {
return err
Expand All @@ -106,8 +107,6 @@ func (s *AsynchronousMessageWithPluginContents) ExecuteTest(t *testing.T, integr
return err
}

s.rootBuilder.pact.messageserver.CleanupPlugins()

return s.rootBuilder.pact.messageserver.WritePactFile(s.rootBuilder.pact.config.PactDir, false)
}

Expand All @@ -133,13 +132,13 @@ type AsynchronousMessageWithTransport struct {
}

func (s *AsynchronousMessageWithTransport) ExecuteTest(t *testing.T, integrationTest func(tc TransportConfig, m AsynchronousMessage) error) error {
defer s.rootBuilder.pact.messageserver.CleanupMockServer(s.transport.Port)
defer s.rootBuilder.pact.messageserver.CleanupPlugins()
message, err := getAsynchronousMessageWithReifiedContents(s.rootBuilder.messageHandle, s.rootBuilder.Type)
if err != nil {
return err
}

defer s.rootBuilder.pact.messageserver.CleanupMockServer(s.transport.Port)

err = integrationTest(s.transport, message)

if err != nil {
Expand Down
7 changes: 3 additions & 4 deletions message/v4/synchronous_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ type SynchronousMessageWithPluginContents struct {
// Will cleanup interactions between tests within a suite
// and write the pact file if successful
func (m *SynchronousMessageWithPluginContents) ExecuteTest(t *testing.T, integrationTest func(m SynchronousMessage) error) error {
defer m.pact.mockserver.CleanupPlugins()
message, err := getSynchronousMessageWithContents(m.messageHandle)
if err != nil {
return err
Expand Down Expand Up @@ -246,13 +247,13 @@ type SynchronousMessageWithTransport struct {
}

func (s *SynchronousMessageWithTransport) ExecuteTest(t *testing.T, integrationTest func(tc TransportConfig, m SynchronousMessage) error) error {
defer s.pact.mockserver.CleanupMockServer(s.transport.Port)
defer s.pact.mockserver.CleanupPlugins()
message, err := getSynchronousMessageWithContents(s.messageHandle)
if err != nil {
return err
}

defer s.pact.mockserver.CleanupMockServer(s.transport.Port)

err = integrationTest(s.transport, message)

// matched := s.pact.mockserver.MockServerMatched(s.transport.Port)
Expand All @@ -267,8 +268,6 @@ func (s *SynchronousMessageWithTransport) ExecuteTest(t *testing.T, integrationT
return err
}

s.pact.mockserver.CleanupPlugins()

return s.pact.mockserver.WritePactFileForServer(s.transport.Port, s.pact.config.PactDir, false)
}

Expand Down
2 changes: 1 addition & 1 deletion provider/verify_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -300,8 +300,8 @@ func (v *VerifyRequest) Verify(handle *native.Verifier, writer outputWriter) err
handle.SetProviderState(v.ProviderStatesSetupURL, true, true)
}

res := handle.Execute()
defer handle.Shutdown()
res := handle.Execute()

return res
}
Expand Down

0 comments on commit cd75a5e

Please sign in to comment.