123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package dockerfile
- import (
- "strings"
- "testing"
- "github.com/docker/docker/api/types"
- "github.com/docker/docker/api/types/container"
- "github.com/docker/docker/builder/dockerfile/parser"
- )
- func TestBuildProcessLabels(t *testing.T) {
- dockerfile := "FROM scratch"
- d := parser.Directive{}
- parser.SetEscapeToken(parser.DefaultEscapeToken, &d)
- n, err := parser.Parse(strings.NewReader(dockerfile), &d)
- if err != nil {
- t.Fatalf("Error when parsing Dockerfile: %s", err)
- }
- options := &types.ImageBuildOptions{
- Labels: map[string]string{
- "org.e": "cli-e",
- "org.d": "cli-d",
- "org.c": "cli-c",
- "org.b": "cli-b",
- "org.a": "cli-a",
- },
- }
- b := &Builder{
- runConfig: &container.Config{},
- options: options,
- directive: d,
- dockerfile: n,
- }
- err = b.processLabels()
- if err != nil {
- t.Fatalf("Error when processing labels: %s", err)
- }
- expected := []string{
- "FROM scratch",
- `LABEL "org.a"='cli-a' "org.b"='cli-b' "org.c"='cli-c' "org.d"='cli-d' "org.e"='cli-e'`,
- }
- if len(b.dockerfile.Children) != 2 {
- t.Fatalf("Expect 2, got %d", len(b.dockerfile.Children))
- }
- for i, v := range b.dockerfile.Children {
- if v.Original != expected[i] {
- t.Fatalf("Expect '%s' for %dth children, got, '%s'", expected[i], i, v.Original)
- }
- }
- }
|