github.com/marianogappa/goreleaser@v0.26.2-0.20170715090149-96acd0a9fc46/pipeline/build/ldflags_test.go (about) 1 package build 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/config" 7 "github.com/goreleaser/goreleaser/context" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestLdFlagsFullTemplate(t *testing.T) { 12 assert := assert.New(t) 13 var config = config.Project{ 14 Builds: []config.Build{ 15 { 16 Ldflags: "-s -w -X main.version={{.Version}} -X main.tag={{.Tag}} -X main.date={{.Date}} -X main.commit={{.Commit}}", 17 }, 18 }, 19 } 20 var ctx = &context.Context{ 21 Git: context.GitInfo{ 22 CurrentTag: "v1.2.3", 23 Commit: "123", 24 }, 25 Version: "1.2.3", 26 Config: config, 27 } 28 flags, err := ldflags(ctx, ctx.Config.Builds[0]) 29 assert.NoError(err) 30 assert.Contains(flags, "-s -w") 31 assert.Contains(flags, "-X main.version=1.2.3") 32 assert.Contains(flags, "-X main.tag=v1.2.3") 33 assert.Contains(flags, "-X main.commit=123") 34 assert.Contains(flags, "-X main.date=") 35 } 36 37 func TestInvalidTemplate(t *testing.T) { 38 assert := assert.New(t) 39 var config = config.Project{ 40 Builds: []config.Build{ 41 {Ldflags: "{invalid{.Template}}}{{}}}"}, 42 }, 43 } 44 var ctx = &context.Context{ 45 Config: config, 46 } 47 flags, err := ldflags(ctx, ctx.Config.Builds[0]) 48 assert.Error(err) 49 assert.Equal(flags, "") 50 }