Skip to content

Commit 8f3b3bf

Browse files
update exclude accounting for fargate integ tests
1 parent 9636d30 commit 8f3b3bf

File tree

1 file changed

+63
-61
lines changed

1 file changed

+63
-61
lines changed

agent/engine/engine_unix_integ_test.go

+63-61
Original file line numberDiff line numberDiff line change
@@ -1411,68 +1411,70 @@ func TestHostResourceManagerLaunchTypeBehavior(t *testing.T) {
14111411
}
14121412

14131413
for _, tc := range testCases {
1414-
testTimeout := 1 * time.Minute
1415-
taskEngine, done, _ := setupWithDefaultConfig(t)
1416-
defer done()
1417-
1418-
stateChangeEvents := taskEngine.StateChangeEvents()
1419-
1420-
taskArn := fmt.Sprintf("IntegTaskArn")
1421-
testTask := createTestTask(taskArn)
1422-
testTask.Memory = int64(768)
1423-
testTask.LaunchType = tc.LaunchType
1424-
1425-
// create container
1426-
A := createTestContainerWithImageAndName(baseImageForOS, fmt.Sprintf("A"))
1427-
A.EntryPoint = &entryPointForOS
1428-
A.Command = []string{"trap shortsleep SIGTERM; shortsleep() { sleep 6; exit 1; }; sleep 10"}
1429-
A.Essential = true
1430-
A.StopTimeout = uint(6)
1431-
testTask.Containers = []*apicontainer.Container{
1432-
A,
1433-
}
1434-
1435-
// Stop task payloads from ACS for the tasks
1436-
stopTask := createTestTask(fmt.Sprintf("IntegTaskArn"))
1437-
stopTask.DesiredStatusUnsafe = apitaskstatus.TaskStopped
1438-
stopTask.Containers = []*apicontainer.Container{}
1439-
1440-
// goroutine to schedule tasks
1441-
go func() {
1442-
taskEngine.AddTask(testTask)
1443-
time.Sleep(2 * time.Second)
1444-
1445-
// single managedTask which should have started
1446-
assert.Equal(t, 1, len(taskEngine.(*DockerTaskEngine).managedTasks), "exactly one task should be running")
1447-
1448-
// stopTask - stop running task, this task will go to STOPPING due to trap handler defined and STOPPED after 6s
1449-
taskEngine.AddTask(stopTask)
1450-
}()
1451-
1452-
finished := make(chan interface{})
1453-
1454-
// goroutine to verify task running order and verify assertions
1455-
go func() {
1456-
// Task goes to RUNNING
1457-
verifyContainerRunningStateChange(t, taskEngine)
1458-
verifyTaskIsRunning(stateChangeEvents, testTask)
1459-
1460-
time.Sleep(2500 * time.Millisecond)
1461-
1462-
// At this time, stopTask is received, and SIGTERM sent to task
1463-
// but the task is still RUNNING due to trap handler
1464-
assert.Equal(t, apitaskstatus.TaskRunning, testTask.GetKnownStatus(), "task known status should be RUNNING")
1465-
assert.Equal(t, apitaskstatus.TaskStopped, testTask.GetDesiredStatus(), "task desired status should be STOPPED")
1466-
// Verify resources are properly consumed in host resource manager, and not consumed for Fargate
1467-
if tc.LaunchType == "FARGATE" {
1468-
assert.False(t, taskEngine.(*DockerTaskEngine).hostResourceManager.checkTaskConsumed(testTask.Arn), "fargate task resources should not be consumed")
1469-
} else {
1470-
assert.True(t, taskEngine.(*DockerTaskEngine).hostResourceManager.checkTaskConsumed(testTask.Arn), "non fargate task resources should not be consumed")
1414+
t.Run(tc.Name, func(t *testing.T) {
1415+
testTimeout := 1 * time.Minute
1416+
taskEngine, done, _ := setupWithDefaultConfig(t)
1417+
defer done()
1418+
1419+
stateChangeEvents := taskEngine.StateChangeEvents()
1420+
1421+
taskArn := "IntegTaskArn"
1422+
testTask := createTestTask(taskArn)
1423+
testTask.Memory = int64(768)
1424+
testTask.LaunchType = tc.LaunchType
1425+
1426+
// create container
1427+
taskContainer := createTestContainerWithImageAndName(baseImageForOS, "SleepWithTrap")
1428+
taskContainer.EntryPoint = &entryPointForOS
1429+
taskContainer.Command = []string{"trap shortsleep SIGTERM; shortsleep() { sleep 6; exit 1; }; sleep 10"}
1430+
taskContainer.Essential = true
1431+
taskContainer.StopTimeout = uint(6)
1432+
testTask.Containers = []*apicontainer.Container{
1433+
taskContainer,
14711434
}
1472-
time.Sleep(2 * time.Second)
1473-
close(finished)
1474-
}()
14751435

1476-
waitFinished(t, finished, testTimeout)
1436+
// Stop task payloads from ACS for the tasks
1437+
stopTask := createTestTask("IntegTaskArn")
1438+
stopTask.DesiredStatusUnsafe = apitaskstatus.TaskStopped
1439+
stopTask.Containers = []*apicontainer.Container{}
1440+
1441+
// goroutine to schedule tasks
1442+
go func() {
1443+
taskEngine.AddTask(testTask)
1444+
time.Sleep(2 * time.Second)
1445+
1446+
// single managedTask which should have started
1447+
assert.Equal(t, 1, len(taskEngine.(*DockerTaskEngine).managedTasks), "exactly one task should be running")
1448+
1449+
// stopTask - stop running task, this task will go to STOPPING due to trap handler defined and STOPPED after 6s
1450+
taskEngine.AddTask(stopTask)
1451+
}()
1452+
1453+
finished := make(chan interface{})
1454+
1455+
// goroutine to verify task running order and verify assertions
1456+
go func() {
1457+
// Task goes to RUNNING
1458+
verifyContainerRunningStateChange(t, taskEngine)
1459+
verifyTaskIsRunning(stateChangeEvents, testTask)
1460+
1461+
time.Sleep(2500 * time.Millisecond)
1462+
1463+
// At this time, stopTask is received, and SIGTERM sent to task
1464+
// but the task is still RUNNING due to trap handler
1465+
assert.Equal(t, apitaskstatus.TaskRunning, testTask.GetKnownStatus(), "task known status should be RUNNING")
1466+
assert.Equal(t, apitaskstatus.TaskStopped, testTask.GetDesiredStatus(), "task desired status should be STOPPED")
1467+
// Verify resources are properly consumed in host resource manager, and not consumed for Fargate
1468+
if tc.LaunchType == "FARGATE" {
1469+
assert.False(t, taskEngine.(*DockerTaskEngine).hostResourceManager.checkTaskConsumed(testTask.Arn), "fargate task resources should not be consumed")
1470+
} else {
1471+
assert.True(t, taskEngine.(*DockerTaskEngine).hostResourceManager.checkTaskConsumed(testTask.Arn), "non fargate task resources should be consumed")
1472+
}
1473+
time.Sleep(2 * time.Second)
1474+
close(finished)
1475+
}()
1476+
1477+
waitFinished(t, finished, testTimeout)
1478+
})
14771479
}
14781480
}

0 commit comments

Comments
 (0)