func dockerclientSetup(t *testing.T) (*mock_dockeriface.MockClient, *dockerGoClient, *mock_ttime.MockTime, func()) { ctrl := gomock.NewController(t) mockDocker := mock_dockeriface.NewMockClient(ctrl) mockDocker.EXPECT().Ping().AnyTimes().Return(nil) factory := mock_dockerclient.NewMockFactory(ctrl) factory.EXPECT().GetDefaultClient().AnyTimes().Return(mockDocker, nil) mockTime := mock_ttime.NewMockTime(ctrl) conf := config.DefaultConfig() conf.EngineAuthData = config.NewSensitiveRawMessage([]byte{}) client, _ := NewDockerGoClient(factory, false, &conf) goClient, _ := client.(*dockerGoClient) ecrClientFactory := mock_ecr.NewMockECRFactory(ctrl) goClient.ecrClientFactory = ecrClientFactory goClient._time = mockTime return mockDocker, goClient, mockTime, ctrl.Finish }
func TestCapabilities(t *testing.T) { conf := &config.Config{ AvailableLoggingDrivers: []dockerclient.LoggingDriver{ dockerclient.JsonFileDriver, dockerclient.SyslogDriver, dockerclient.JournaldDriver, dockerclient.GelfDriver, dockerclient.FluentdDriver, }, PrivilegedDisabled: false, SELinuxCapable: true, AppArmorCapable: true, TaskCleanupWaitDuration: config.DefaultConfig().TaskCleanupWaitDuration, } ctrl, client, _, taskEngine, _ := mocks(t, conf) defer ctrl.Finish() client.EXPECT().SupportedVersions().Return([]dockerclient.DockerVersion{ dockerclient.Version_1_17, dockerclient.Version_1_18, }) capabilities := taskEngine.Capabilities() expectedCapabilities := []string{ "com.amazonaws.ecs.capability.privileged-container", "com.amazonaws.ecs.capability.docker-remote-api.1.17", "com.amazonaws.ecs.capability.docker-remote-api.1.18", "com.amazonaws.ecs.capability.logging-driver.json-file", "com.amazonaws.ecs.capability.logging-driver.syslog", "com.amazonaws.ecs.capability.selinux", "com.amazonaws.ecs.capability.apparmor", } if !reflect.DeepEqual(capabilities, expectedCapabilities) { t.Errorf("Expected capabilities %v, but got capabilities %v", expectedCapabilities, capabilities) } }
// waitForCleanupSleep is the sleep duration in milliseconds // for the waiting after container cleanup before checking the state of the manager. waitForCleanupSleep = 10 * time.Millisecond taskArn = "gremlin" taskDefinitionFamily = "docker-gremlin" taskDefinitionVersion = "1" containerName = "gremlin-container" ) var endpoint = utils.DefaultIfBlank(os.Getenv(engine.DOCKER_ENDPOINT_ENV_VARIABLE), engine.DOCKER_DEFAULT_ENDPOINT) var client, _ = docker.NewClient(endpoint) var cfg = config.DefaultConfig() func init() { // Set DockerGraphPath as per changes in 1.6 cfg.DockerGraphPath = "/var/run/docker" } // createGremlin creates the gremlin container using the docker client. // It is used only in the test code. func createGremlin(client *docker.Client) (*docker.Container, error) { container, err := client.CreateContainer(docker.CreateContainerOptions{ Config: &docker.Config{ Image: testImageName, }, })
"github.com/aws/amazon-ecs-agent/agent/api" "github.com/aws/amazon-ecs-agent/agent/config" "github.com/aws/amazon-ecs-agent/agent/credentials" "github.com/aws/amazon-ecs-agent/agent/credentials/mocks" "github.com/aws/amazon-ecs-agent/agent/engine/dockerclient" "github.com/aws/amazon-ecs-agent/agent/engine/testdata" "github.com/aws/amazon-ecs-agent/agent/statemanager/mocks" "github.com/aws/amazon-ecs-agent/agent/utils/ttime/mocks" "github.com/aws/aws-sdk-go/aws" docker "github.com/fsouza/go-dockerclient" "github.com/golang/mock/gomock" ) const credentialsId = "credsid" var defaultConfig = config.DefaultConfig() func mocks(t *testing.T, cfg *config.Config) (*gomock.Controller, *MockDockerClient, *mock_ttime.MockTime, TaskEngine, *mock_credentials.MockManager) { ctrl := gomock.NewController(t) client := NewMockDockerClient(ctrl) mockTime := mock_ttime.NewMockTime(ctrl) credentialsManager := mock_credentials.NewMockManager(ctrl) taskEngine := NewTaskEngine(cfg, client, credentialsManager) taskEngine.(*DockerTaskEngine)._time = mockTime return ctrl, client, mockTime, taskEngine, credentialsManager } func TestBatchContainerHappyPath(t *testing.T) { ctrl, client, mockTime, taskEngine, credentialsManager := mocks(t, &defaultConfig) defer ctrl.Finish()