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  }