@@ -21,74 +21,14 @@ import (
21
21
"testing"
22
22
"time"
23
23
24
- app_mocks "github.com/aws/amazon-ecs-agent/agent/app/mocks"
25
24
"github.com/aws/amazon-ecs-agent/agent/engine"
26
- "github.com/aws/amazon-ecs-agent/agent/eventstream"
27
25
"github.com/aws/amazon-ecs-agent/agent/sighandlers"
28
- "github.com/aws/amazon-ecs-agent/agent/statemanager"
29
26
statemanager_mocks "github.com/aws/amazon-ecs-agent/agent/statemanager/mocks"
30
- "github.com/aws/aws-sdk-go/aws/credentials"
31
27
"github.com/golang/mock/gomock"
32
28
"github.com/stretchr/testify/assert"
33
29
"golang.org/x/sys/windows/svc"
34
30
)
35
31
36
- // TestDoStartHappyPath tests the doStart method for windows. This method should
37
- // go away when we support metrics for windows containers
38
- func TestDoStartHappyPath (t * testing.T ) {
39
- ctrl , credentialsManager , state , imageManager , client ,
40
- dockerClient , _ , _ := setup (t )
41
- defer ctrl .Finish ()
42
-
43
- mockCredentialsProvider := app_mocks .NewMockProvider (ctrl )
44
-
45
- var discoverEndpointsInvoked sync.WaitGroup
46
- discoverEndpointsInvoked .Add (1 )
47
- containerChangeEvents := make (chan engine.DockerContainerChangeEvent )
48
-
49
- // These calls are expected to happen, but cannot be ordered as they are
50
- // invoked via go routines, which will lead to occasional test failues
51
- dockerClient .EXPECT ().Version ().AnyTimes ()
52
- imageManager .EXPECT ().StartImageCleanupProcess (gomock .Any ()).MaxTimes (1 )
53
- mockCredentialsProvider .EXPECT ().IsExpired ().Return (false ).AnyTimes ()
54
- client .EXPECT ().DiscoverPollEndpoint (gomock .Any ()).Do (func (x interface {}) {
55
- // Ensures that the test waits until acs session has bee started
56
- discoverEndpointsInvoked .Done ()
57
- }).Return ("poll-endpoint" , nil )
58
- client .EXPECT ().DiscoverPollEndpoint (gomock .Any ()).Return ("acs-endpoint" , nil ).AnyTimes ()
59
-
60
- gomock .InOrder (
61
- mockCredentialsProvider .EXPECT ().Retrieve ().Return (credentials.Value {}, nil ),
62
- dockerClient .EXPECT ().SupportedVersions ().Return (nil ),
63
- dockerClient .EXPECT ().KnownVersions ().Return (nil ),
64
- client .EXPECT ().RegisterContainerInstance (gomock .Any (), gomock .Any ()).Return ("arn" , nil ),
65
- imageManager .EXPECT ().SetSaver (gomock .Any ()),
66
- dockerClient .EXPECT ().ContainerEvents (gomock .Any ()).Return (containerChangeEvents , nil ),
67
- state .EXPECT ().AllImageStates ().Return (nil ),
68
- state .EXPECT ().AllTasks ().Return (nil ),
69
- )
70
-
71
- cfg := getTestConfig ()
72
- ctx , cancel := context .WithCancel (context .TODO ())
73
- // Cancel the context to cancel async routines
74
- defer cancel ()
75
- agent := & ecsAgent {
76
- ctx : ctx ,
77
- cfg : & cfg ,
78
- credentialProvider : credentials .NewCredentials (mockCredentialsProvider ),
79
- dockerClient : dockerClient ,
80
- terminationHandler : func (saver statemanager.Saver , taskEngine engine.TaskEngine ) {},
81
- }
82
-
83
- go agent .doStart (eventstream .NewEventStream ("events" , ctx ),
84
- credentialsManager , state , imageManager , client )
85
-
86
- // Wait for both DiscoverPollEndpointInput and DiscoverTelemetryEndpoint to be
87
- // invoked. These are used as proxies to indicate that acs and tcs handlers'
88
- // NewSession call has been invoked
89
- discoverEndpointsInvoked .Wait ()
90
- }
91
-
92
32
type mockAgent struct {
93
33
startFunc func () int
94
34
terminationHandler sighandlers.TerminationHandler
0 commit comments