Add particular port for registered service when goc build
This commit is contained in:
parent
f8b8fdb014
commit
24040459f2
@ -71,7 +71,7 @@ func runBuild(args []string, wd string) {
|
|||||||
defer gocBuild.Clean()
|
defer gocBuild.Clean()
|
||||||
// doCover with original buildFlags, with new GOPATH( tmp:original )
|
// doCover with original buildFlags, with new GOPATH( tmp:original )
|
||||||
// in the tmp directory
|
// 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
|
// do install in the temporary directory
|
||||||
err = gocBuild.Build()
|
err = gocBuild.Build()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -9,6 +9,7 @@ var (
|
|||||||
target string
|
target string
|
||||||
center string
|
center string
|
||||||
mode string
|
mode string
|
||||||
|
agentPort string
|
||||||
debugGoc bool
|
debugGoc bool
|
||||||
buildFlags string
|
buildFlags string
|
||||||
|
|
||||||
@ -26,6 +27,7 @@ func addBasicFlags(cmdset *pflag.FlagSet) {
|
|||||||
func addCommonFlags(cmdset *pflag.FlagSet) {
|
func addCommonFlags(cmdset *pflag.FlagSet) {
|
||||||
addBasicFlags(cmdset)
|
addBasicFlags(cmdset)
|
||||||
cmdset.StringVar(&mode, "mode", "count", "coverage mode: set, count, atomic")
|
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")
|
cmdset.StringVar(&buildFlags, "buildflags", "", "specify the build flags")
|
||||||
// bind to viper
|
// bind to viper
|
||||||
viper.BindPFlags(cmdset)
|
viper.BindPFlags(cmdset)
|
||||||
|
@ -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)
|
log.Fatalf("unknown -mode %v", mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
cover.Execute(buildFlags, "", target, mode, center)
|
cover.Execute(buildFlags, "", target, mode, agentPort, center)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ func runInstall(args []string, wd string) {
|
|||||||
defer gocBuild.Clean()
|
defer gocBuild.Clean()
|
||||||
// doCover with original buildFlags, with new GOPATH( tmp:original )
|
// doCover with original buildFlags, with new GOPATH( tmp:original )
|
||||||
// in the tmp directory
|
// 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
|
// do install in the temporary directory
|
||||||
err = gocBuild.Install()
|
err = gocBuild.Install()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -60,7 +60,7 @@ goc run . [--buildflags] [--exec] [--arguments]
|
|||||||
fmt.Printf("[goc] goc server started: %s \n", gocServer)
|
fmt.Printf("[goc] goc server started: %s \n", gocServer)
|
||||||
|
|
||||||
// execute covers for the target source with original buildFlags and new GOPATH( tmp:original )
|
// 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 {
|
if err := gocBuild.Run(); err != nil {
|
||||||
log.Fatalf("Fail to run: %v", err)
|
log.Fatalf("Fail to run: %v", err)
|
||||||
|
@ -46,6 +46,7 @@ var (
|
|||||||
// TestCover is a collection of all counters
|
// TestCover is a collection of all counters
|
||||||
type TestCover struct {
|
type TestCover struct {
|
||||||
Mode string
|
Mode string
|
||||||
|
AgentPort string
|
||||||
Center string // cover profile host center
|
Center string // cover profile host center
|
||||||
MainPkgCover *PackageCover
|
MainPkgCover *PackageCover
|
||||||
DepsCover []*PackageCover
|
DepsCover []*PackageCover
|
||||||
@ -120,7 +121,7 @@ type PackageError struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Execute execute go tool cover for all the .go files in the target folder
|
//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) {
|
if !isDirExist(target) {
|
||||||
log.Errorf("Target directory %s not exist", target)
|
log.Errorf("Target directory %s not exist", target)
|
||||||
return ErrCoverPkgFailed
|
return ErrCoverPkgFailed
|
||||||
@ -152,6 +153,7 @@ func Execute(args, newGopath, target, mode, center string) error {
|
|||||||
// new a testcover for this service
|
// new a testcover for this service
|
||||||
tc := TestCover{
|
tc := TestCover{
|
||||||
Mode: mode,
|
Mode: mode,
|
||||||
|
AgentPort: agentPort,
|
||||||
Center: center,
|
Center: center,
|
||||||
MainPkgCover: mainCover,
|
MainPkgCover: mainCover,
|
||||||
}
|
}
|
||||||
|
@ -316,7 +316,7 @@ func TestExecuteForSimpleModProject(t *testing.T) {
|
|||||||
testDir := filepath.Join(os.TempDir(), "goc-build-test")
|
testDir := filepath.Join(os.TempDir(), "goc-build-test")
|
||||||
copy.Copy(workingDir, testDir)
|
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"))
|
_, err := os.Lstat(filepath.Join(testDir, "http_cover_apis_auto_generated.go"))
|
||||||
if !assert.Equal(t, err, nil) {
|
if !assert.Equal(t, err, nil) {
|
||||||
|
@ -260,8 +260,12 @@ func listen() (ln net.Listener, host string, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
agentPort := "{{.AgentPort }}"
|
||||||
ln, err = net.Listen("tcp4", ":0")
|
if agentPort != "" {
|
||||||
|
ln, err = net.Listen("tcp4", agentPort)
|
||||||
|
} else {
|
||||||
|
ln, err = net.Listen("tcp4", ":0")
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user