소스 검색

integration/internal/container: add NewTestConfig utility

Introduce a NewTestConfig utility, to allow using the available utilities
for constructing a config, and use them with the regular API client.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 1 년 전
부모
커밋
0899ba4a3f
1개의 변경된 파일11개의 추가작업 그리고 7개의 파일을 삭제
  1. 11 7
      integration/internal/container/container.go

+ 11 - 7
integration/internal/container/container.go

@@ -27,9 +27,11 @@ type TestContainerConfig struct {
 	Platform         *ocispec.Platform
 	Platform         *ocispec.Platform
 }
 }
 
 
-// create creates a container with the specified options
-func create(ctx context.Context, t *testing.T, apiClient client.APIClient, ops ...func(*TestContainerConfig)) (container.CreateResponse, error) {
-	t.Helper()
+// NewTestConfig creates a new TestContainerConfig with the provided options.
+//
+// If no options are passed, it creates a default config, which is a busybox
+// container running "top" (on Linux) or "sleep" (on Windows).
+func NewTestConfig(ops ...func(*TestContainerConfig)) *TestContainerConfig {
 	cmd := []string{"top"}
 	cmd := []string{"top"}
 	if runtime.GOOS == "windows" {
 	if runtime.GOOS == "windows" {
 		cmd = []string{"sleep", "240"}
 		cmd = []string{"sleep", "240"}
@@ -47,13 +49,14 @@ func create(ctx context.Context, t *testing.T, apiClient client.APIClient, ops .
 		op(config)
 		op(config)
 	}
 	}
 
 
-	return apiClient.ContainerCreate(ctx, config.Config, config.HostConfig, config.NetworkingConfig, config.Platform, config.Name)
+	return config
 }
 }
 
 
-// Create creates a container with the specified options, asserting that there was no error
+// Create creates a container with the specified options, asserting that there was no error.
 func Create(ctx context.Context, t *testing.T, apiClient client.APIClient, ops ...func(*TestContainerConfig)) string {
 func Create(ctx context.Context, t *testing.T, apiClient client.APIClient, ops ...func(*TestContainerConfig)) string {
 	t.Helper()
 	t.Helper()
-	c, err := create(ctx, t, apiClient, ops...)
+	config := NewTestConfig(ops...)
+	c, err := apiClient.ContainerCreate(ctx, config.Config, config.HostConfig, config.NetworkingConfig, config.Platform, config.Name)
 	assert.NilError(t, err)
 	assert.NilError(t, err)
 
 
 	return c.ID
 	return c.ID
@@ -61,7 +64,8 @@ func Create(ctx context.Context, t *testing.T, apiClient client.APIClient, ops .
 
 
 // CreateExpectingErr creates a container, expecting an error with the specified message
 // CreateExpectingErr creates a container, expecting an error with the specified message
 func CreateExpectingErr(ctx context.Context, t *testing.T, apiClient client.APIClient, errMsg string, ops ...func(*TestContainerConfig)) {
 func CreateExpectingErr(ctx context.Context, t *testing.T, apiClient client.APIClient, errMsg string, ops ...func(*TestContainerConfig)) {
-	_, err := create(ctx, t, apiClient, ops...)
+	config := NewTestConfig(ops...)
+	_, err := apiClient.ContainerCreate(ctx, config.Config, config.HostConfig, config.NetworkingConfig, config.Platform, config.Name)
 	assert.ErrorContains(t, err, errMsg)
 	assert.ErrorContains(t, err, errMsg)
 }
 }