Refactor all tests to use the MemoryLeakTestSuite.

This commit is contained in:
Maximilian Paß
2023-09-05 16:11:06 +02:00
parent e3161637a9
commit 3abd4d9a3d
30 changed files with 1012 additions and 759 deletions

View File

@@ -5,42 +5,52 @@ import (
"github.com/openHPI/poseidon/internal/environment"
"github.com/openHPI/poseidon/internal/runner"
"github.com/openHPI/poseidon/tests"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"syscall"
"testing"
"time"
)
func TestAWSDisabledUsesNomadManager(t *testing.T) {
type MainTestSuite struct {
tests.MemoryLeakTestSuite
}
func TestMainTestSuite(t *testing.T) {
suite.Run(t, new(MainTestSuite))
}
func (s *MainTestSuite) TestAWSDisabledUsesNomadManager() {
disableRecovery, cancel := context.WithCancel(context.Background())
cancel()
runnerManager, environmentManager := createManagerHandler(createNomadManager, true,
runner.NewAbstractManager(disableRecovery), &environment.AbstractManager{}, disableRecovery)
runner.NewAbstractManager(s.TestCtx), &environment.AbstractManager{}, disableRecovery)
awsRunnerManager, awsEnvironmentManager := createManagerHandler(createAWSManager, false,
runnerManager, environmentManager, disableRecovery)
assert.Equal(t, runnerManager, awsRunnerManager)
assert.Equal(t, environmentManager, awsEnvironmentManager)
runnerManager, environmentManager, s.TestCtx)
s.Equal(runnerManager, awsRunnerManager)
s.Equal(environmentManager, awsEnvironmentManager)
}
func TestAWSEnabledWrappesNomadManager(t *testing.T) {
func (s *MainTestSuite) TestAWSEnabledWrappesNomadManager() {
disableRecovery, cancel := context.WithCancel(context.Background())
cancel()
runnerManager, environmentManager := createManagerHandler(createNomadManager, true,
runner.NewAbstractManager(disableRecovery), &environment.AbstractManager{}, disableRecovery)
runner.NewAbstractManager(s.TestCtx), &environment.AbstractManager{}, disableRecovery)
awsRunnerManager, awsEnvironmentManager := createManagerHandler(createAWSManager,
true, runnerManager, environmentManager, disableRecovery)
assert.NotEqual(t, runnerManager, awsRunnerManager)
assert.NotEqual(t, environmentManager, awsEnvironmentManager)
true, runnerManager, environmentManager, s.TestCtx)
s.NotEqual(runnerManager, awsRunnerManager)
s.NotEqual(environmentManager, awsEnvironmentManager)
}
func TestShutdownOnOSSignal_Profiling(t *testing.T) {
func (s *MainTestSuite) TestShutdownOnOSSignal_Profiling() {
called := false
disableRecovery, cancel := context.WithCancel(context.Background())
cancel()
s.ExpectedGoroutingIncrease++ // The shutdownOnOSSignal waits for an exit after stopping the profiling.
s.ExpectedGoroutingIncrease++ // The shutdownOnOSSignal triggers a os.Signal Goroutine.
server := initServer(disableRecovery)
go shutdownOnOSSignal(server, context.Background(), func() {
called = true
@@ -48,8 +58,8 @@ func TestShutdownOnOSSignal_Profiling(t *testing.T) {
<-time.After(tests.ShortTimeout)
err := syscall.Kill(syscall.Getpid(), syscall.SIGUSR1)
require.NoError(t, err)
s.Require().NoError(err)
<-time.After(tests.ShortTimeout)
assert.True(t, called)
s.True(called)
}