| package dockerfile |
| |
| import ( |
| "github.com/docker/docker/pkg/testutil/assert" |
| "testing" |
| ) |
| |
| func strPtr(source string) *string { |
| return &source |
| } |
| |
| func TestGetAllAllowed(t *testing.T) { |
| buildArgs := newBuildArgs(map[string]*string{ |
| "ArgNotUsedInDockerfile": strPtr("fromopt1"), |
| "ArgOverriddenByOptions": strPtr("fromopt2"), |
| "ArgNoDefaultInDockerfileFromOptions": strPtr("fromopt3"), |
| "HTTP_PROXY": strPtr("theproxy"), |
| }) |
| |
| buildArgs.AddMetaArg("ArgFromMeta", strPtr("frommeta1")) |
| buildArgs.AddMetaArg("ArgFromMetaOverriden", strPtr("frommeta2")) |
| buildArgs.AddMetaArg("ArgFromMetaNotUsed", strPtr("frommeta3")) |
| |
| buildArgs.AddArg("ArgOverriddenByOptions", strPtr("fromdockerfile2")) |
| buildArgs.AddArg("ArgWithDefaultInDockerfile", strPtr("fromdockerfile1")) |
| buildArgs.AddArg("ArgNoDefaultInDockerfile", nil) |
| buildArgs.AddArg("ArgNoDefaultInDockerfileFromOptions", nil) |
| buildArgs.AddArg("ArgFromMeta", nil) |
| buildArgs.AddArg("ArgFromMetaOverriden", strPtr("fromdockerfile3")) |
| |
| all := buildArgs.GetAllAllowed() |
| expected := map[string]string{ |
| "HTTP_PROXY": "theproxy", |
| "ArgOverriddenByOptions": "fromopt2", |
| "ArgWithDefaultInDockerfile": "fromdockerfile1", |
| "ArgNoDefaultInDockerfileFromOptions": "fromopt3", |
| "ArgFromMeta": "frommeta1", |
| "ArgFromMetaOverriden": "fromdockerfile3", |
| } |
| assert.DeepEqual(t, all, expected) |
| } |
| |
| func TestGetAllMeta(t *testing.T) { |
| buildArgs := newBuildArgs(map[string]*string{ |
| "ArgNotUsedInDockerfile": strPtr("fromopt1"), |
| "ArgOverriddenByOptions": strPtr("fromopt2"), |
| "ArgNoDefaultInMetaFromOptions": strPtr("fromopt3"), |
| "HTTP_PROXY": strPtr("theproxy"), |
| }) |
| |
| buildArgs.AddMetaArg("ArgFromMeta", strPtr("frommeta1")) |
| buildArgs.AddMetaArg("ArgOverriddenByOptions", strPtr("frommeta2")) |
| buildArgs.AddMetaArg("ArgNoDefaultInMetaFromOptions", nil) |
| |
| all := buildArgs.GetAllMeta() |
| expected := map[string]string{ |
| "HTTP_PROXY": "theproxy", |
| "ArgFromMeta": "frommeta1", |
| "ArgOverriddenByOptions": "fromopt2", |
| "ArgNoDefaultInMetaFromOptions": "fromopt3", |
| } |
| assert.DeepEqual(t, all, expected) |
| } |