Files
poseidon/cmd/poseidon/main_test.go
Maximilian Paß 0d6b4f660c Refactor NewAbstractManager
to require a context used for the monitoring.
2023-09-11 13:44:29 +02:00

56 lines
1.8 KiB
Go

package main
import (
"context"
"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"
"syscall"
"testing"
"time"
)
func TestAWSDisabledUsesNomadManager(t *testing.T) {
disableRecovery, cancel := context.WithCancel(context.Background())
cancel()
runnerManager, environmentManager := createManagerHandler(createNomadManager, true,
runner.NewAbstractManager(disableRecovery), &environment.AbstractManager{}, disableRecovery)
awsRunnerManager, awsEnvironmentManager := createManagerHandler(createAWSManager, false,
runnerManager, environmentManager, disableRecovery)
assert.Equal(t, runnerManager, awsRunnerManager)
assert.Equal(t, environmentManager, awsEnvironmentManager)
}
func TestAWSEnabledWrappesNomadManager(t *testing.T) {
disableRecovery, cancel := context.WithCancel(context.Background())
cancel()
runnerManager, environmentManager := createManagerHandler(createNomadManager, true,
runner.NewAbstractManager(disableRecovery), &environment.AbstractManager{}, disableRecovery)
awsRunnerManager, awsEnvironmentManager := createManagerHandler(createAWSManager,
true, runnerManager, environmentManager, disableRecovery)
assert.NotEqual(t, runnerManager, awsRunnerManager)
assert.NotEqual(t, environmentManager, awsEnvironmentManager)
}
func TestShutdownOnOSSignal_Profiling(t *testing.T) {
called := false
disableRecovery, cancel := context.WithCancel(context.Background())
cancel()
server := initServer(disableRecovery)
go shutdownOnOSSignal(server, context.Background(), func() {
called = true
})
<-time.After(tests.ShortTimeout)
err := syscall.Kill(syscall.Getpid(), syscall.SIGUSR1)
require.NoError(t, err)
<-time.After(tests.ShortTimeout)
assert.True(t, called)
}