Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func runBuild(args []string, wd string) {
defer gocBuild.Clean()
// doCover with original buildFlags, with new GOPATH( tmp:original )
// in the tmp directory
cover.Execute(buildFlags, gocBuild.NewGOPATH, gocBuild.TmpDir, mode, center)
cover.Execute(buildFlags, gocBuild.NewGOPATH, gocBuild.TmpDir, mode, agentPort, center)
// do install in the temporary directory
err = gocBuild.Build()
if err != nil {
Expand Down
2 changes: 2 additions & 0 deletions cmd/commonflags.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ var (
target string
center string
mode string
agentPort string
debugGoc bool
buildFlags string

Expand All @@ -26,6 +27,7 @@ func addBasicFlags(cmdset *pflag.FlagSet) {
func addCommonFlags(cmdset *pflag.FlagSet) {
addBasicFlags(cmdset)
cmdset.StringVar(&mode, "mode", "count", "coverage mode: set, count, atomic")
cmdset.StringVar(&agentPort, "agentport", "", "specify fixed port for registered service communicate with goc server. if not provided, using a random port")
cmdset.StringVar(&buildFlags, "buildflags", "", "specify the build flags")
// bind to viper
viper.BindPFlags(cmdset)
Expand Down
2 changes: 1 addition & 1 deletion cmd/cover.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ goc cover --center=http://127.0.0.1:7777 --target=/path/to/target --mode=atomic
log.Fatalf("unknown -mode %v", mode)
}

cover.Execute(buildFlags, "", target, mode, center)
cover.Execute(buildFlags, "", target, mode, agentPort, center)
},
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func runInstall(args []string, wd string) {
defer gocBuild.Clean()
// doCover with original buildFlags, with new GOPATH( tmp:original )
// in the tmp directory
cover.Execute(buildFlags, gocBuild.NewGOPATH, gocBuild.TmpDir, mode, center)
cover.Execute(buildFlags, gocBuild.NewGOPATH, gocBuild.TmpDir, mode, agentPort, center)
// do install in the temporary directory
err = gocBuild.Install()
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ goc run . [--buildflags] [--exec] [--arguments]
fmt.Printf("[goc] goc server started: %s \n", gocServer)

// execute covers for the target source with original buildFlags and new GOPATH( tmp:original )
cover.Execute(buildFlags, gocBuild.NewGOPATH, gocBuild.TmpDir, mode, gocServer)
cover.Execute(buildFlags, gocBuild.NewGOPATH, gocBuild.TmpDir, mode, "", gocServer)

if err := gocBuild.Run(); err != nil {
log.Fatalf("Fail to run: %v", err)
Expand Down
4 changes: 3 additions & 1 deletion pkg/cover/cover.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ var (
// TestCover is a collection of all counters
type TestCover struct {
Mode string
AgentPort string
Center string // cover profile host center
MainPkgCover *PackageCover
DepsCover []*PackageCover
Expand Down Expand Up @@ -120,7 +121,7 @@ type PackageError struct {
}

//Execute execute go tool cover for all the .go files in the target folder
func Execute(args, newGopath, target, mode, center string) error {
func Execute(args, newGopath, target, mode, agentPort, center string) error {
if !isDirExist(target) {
log.Errorf("Target directory %s not exist", target)
return ErrCoverPkgFailed
Expand Down Expand Up @@ -152,6 +153,7 @@ func Execute(args, newGopath, target, mode, center string) error {
// new a testcover for this service
tc := TestCover{
Mode: mode,
AgentPort: agentPort,
Center: center,
MainPkgCover: mainCover,
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/cover/cover_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ func TestExecuteForSimpleModProject(t *testing.T) {
testDir := filepath.Join(os.TempDir(), "goc-build-test")
copy.Copy(workingDir, testDir)

Execute("", gopath, testDir, "count", "http://127.0.0.1:7777")
Execute("", gopath, testDir, "count", "", "http://127.0.0.1:7777")

_, err := os.Lstat(filepath.Join(testDir, "http_cover_apis_auto_generated.go"))
if !assert.Equal(t, err, nil) {
Expand Down
8 changes: 6 additions & 2 deletions pkg/cover/instrument.go
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,12 @@ func listen() (ln net.Listener, host string, err error) {
return
}
}

ln, err = net.Listen("tcp4", ":0")
agentPort := "{{.AgentPort }}"
if agentPort != "" {
ln, err = net.Listen("tcp4", agentPort)
} else {
ln, err = net.Listen("tcp4", ":0")
}
if err != nil {
return
}
Expand Down