github.com/flavio/docker@v0.1.3-0.20170117145210-f63d1a6eec47/builder/dockerfile/builder_test.go (about) 1 package dockerfile 2 3 import ( 4 "strings" 5 6 "testing" 7 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/api/types/container" 10 "github.com/docker/docker/builder/dockerfile/parser" 11 ) 12 13 func TestBuildProcessLabels(t *testing.T) { 14 dockerfile := "FROM scratch" 15 d := parser.Directive{} 16 parser.SetEscapeToken(parser.DefaultEscapeToken, &d) 17 n, err := parser.Parse(strings.NewReader(dockerfile), &d) 18 if err != nil { 19 t.Fatalf("Error when parsing Dockerfile: %s", err) 20 } 21 22 options := &types.ImageBuildOptions{ 23 Labels: map[string]string{ 24 "org.e": "cli-e", 25 "org.d": "cli-d", 26 "org.c": "cli-c", 27 "org.b": "cli-b", 28 "org.a": "cli-a", 29 }, 30 } 31 b := &Builder{ 32 runConfig: &container.Config{}, 33 options: options, 34 directive: d, 35 dockerfile: n, 36 } 37 err = b.processLabels() 38 if err != nil { 39 t.Fatalf("Error when processing labels: %s", err) 40 } 41 42 expected := []string{ 43 "FROM scratch", 44 `LABEL "org.a"='cli-a' "org.b"='cli-b' "org.c"='cli-c' "org.d"='cli-d' "org.e"='cli-e'`, 45 } 46 if len(b.dockerfile.Children) != 2 { 47 t.Fatalf("Expect 2, got %d", len(b.dockerfile.Children)) 48 } 49 for i, v := range b.dockerfile.Children { 50 if v.Original != expected[i] { 51 t.Fatalf("Expect '%s' for %dth children, got, '%s'", expected[i], i, v.Original) 52 } 53 } 54 }