Merge pull request #54 from memoryliu/feature_52

Add particular port for registered service when goc build
This commit is contained in:
qiniu-bot 2020-07-03 23:59:09 +08:00 committed by GitHub
commit 6398d4f028
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 16 additions and 8 deletions

View File

@ -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 {

View File

@ -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)

View File

@ -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)
}, },
} }

View File

@ -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 {

View File

@ -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)

View File

@ -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,
} }

View File

@ -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) {

View File

@ -260,8 +260,12 @@ func listen() (ln net.Listener, host string, err error) {
return return
} }
} }
agentPort := "{{.AgentPort }}"
if agentPort != "" {
ln, err = net.Listen("tcp4", agentPort)
} else {
ln, err = net.Listen("tcp4", ":0") ln, err = net.Listen("tcp4", ":0")
}
if err != nil { if err != nil {
return return
} }