diff --git a/README.md b/README.md index eb28f13..dadbcc6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![CLA assistant](https://cla-assistant.io/readme/badge/LinuxSuRen/api-testing)](https://cla-assistant.io/LinuxSuRen/api-testing) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/3f16717cd6f841118006f12c346e9341)](https://app.codacy.com/gh/LinuxSuRen/api-testing/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/3f16717cd6f841118006f12c346e9341)](https://app.codacy.com/gh/LinuxSuRen/api-testing/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) ![GitHub All Releases](https://img.shields.io/github/downloads/linuxsuren/api-testing/total) diff --git a/cmd/run.go b/cmd/run.go index 644b9e4..e448007 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -124,6 +124,7 @@ See also https://github.com/LinuxSuRen/api-testing/tree/master/sample`, } func (o *runOption) preRunE(cmd *cobra.Command, args []string) (err error) { + o.context = cmd.Context() writer := cmd.OutOrStdout() if o.reportFile != "" && !strings.HasPrefix(o.reportFile, "http://") && !strings.HasPrefix(o.reportFile, "https://") { @@ -191,7 +192,7 @@ func (o *runOption) startMonitor() (err error) { sockFile := os.ExpandEnv(fmt.Sprintf("$HOME/.config/atest/%s.sock", "atest-monitor-docker")) os.MkdirAll(filepath.Dir(sockFile), 0755) - execer := fakeruntime.DefaultExecer{} + execer := fakeruntime.NewDefaultExecerWithContext(o.context) go func(socketURL, plugin string) { if err = execer.RunCommandWithIO(plugin, "", os.Stdout, os.Stderr, "server", "--socket", socketURL); err != nil { log.Printf("failed to start %s, error: %v", socketURL, err) @@ -216,7 +217,6 @@ func (o *runOption) startMonitor() (err error) { func (o *runOption) runE(cmd *cobra.Command, args []string) (err error) { o.startTime = time.Now() - o.context = cmd.Context() o.limiter = limit.NewDefaultRateLimiter(o.qps, o.burst) defer func() { cmd.Printf("\nconsume: %s\n", time.Since(o.startTime).String()) diff --git a/cmd/server.go b/cmd/server.go index b3277f6..dd65760 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -125,6 +125,7 @@ type serverOption struct { } func (o *serverOption) preRunE(cmd *cobra.Command, args []string) (err error) { + o.execer.WithContext(cmd.Context()) var grpcOpts []grpc.ServerOption if o.auth == "oauth" { diff --git a/extensions/store-etcd/go.mod b/extensions/store-etcd/go.mod index 40dc8af..7326691 100644 --- a/extensions/store-etcd/go.mod +++ b/extensions/store-etcd/go.mod @@ -46,7 +46,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.15.9 // indirect github.com/lestrrat-go/strftime v1.0.6 // indirect - github.com/linuxsuren/go-fake-runtime v0.0.1 // indirect + github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 // indirect github.com/linuxsuren/unstructured v0.0.1 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect diff --git a/extensions/store-etcd/go.sum b/extensions/store-etcd/go.sum index f00e56b..28b16de 100644 --- a/extensions/store-etcd/go.sum +++ b/extensions/store-etcd/go.sum @@ -842,8 +842,8 @@ github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2t github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/linuxsuren/go-fake-runtime v0.0.1 h1:ByXNvKgn5g+qnvS4KJIq/OP/fA3qCMRGxwlxsU6Weh8= -github.com/linuxsuren/go-fake-runtime v0.0.1/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 h1:4gfAkFURZJMne11sE8OFQJm0UHVNS887296Kp7qWhc8= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= github.com/linuxsuren/unstructured v0.0.1 h1:ilUA8MUYbR6l9ebo/YPV2bKqlf62bzQursDSE+j00iU= github.com/linuxsuren/unstructured v0.0.1/go.mod h1:KH6aTj+FegzGBzc1vS6mzZx3/duhTUTEVyW5sO7p4as= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= diff --git a/extensions/store-git/go.mod b/extensions/store-git/go.mod index c198fb4..524c90e 100644 --- a/extensions/store-git/go.mod +++ b/extensions/store-git/go.mod @@ -78,7 +78,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/linuxsuren/go-fake-runtime v0.0.1 // indirect + github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 // indirect github.com/linuxsuren/unstructured v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/copystructure v1.0.0 // indirect diff --git a/extensions/store-git/go.sum b/extensions/store-git/go.sum index 05e2ef3..94839cd 100644 --- a/extensions/store-git/go.sum +++ b/extensions/store-git/go.sum @@ -232,8 +232,8 @@ github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2t github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/linuxsuren/go-fake-runtime v0.0.1 h1:ByXNvKgn5g+qnvS4KJIq/OP/fA3qCMRGxwlxsU6Weh8= -github.com/linuxsuren/go-fake-runtime v0.0.1/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 h1:4gfAkFURZJMne11sE8OFQJm0UHVNS887296Kp7qWhc8= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= github.com/linuxsuren/unstructured v0.0.1 h1:ilUA8MUYbR6l9ebo/YPV2bKqlf62bzQursDSE+j00iU= github.com/linuxsuren/unstructured v0.0.1/go.mod h1:KH6aTj+FegzGBzc1vS6mzZx3/duhTUTEVyW5sO7p4as= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= diff --git a/extensions/store-mongodb/go.mod b/extensions/store-mongodb/go.mod index 714093a..7452264 100644 --- a/extensions/store-mongodb/go.mod +++ b/extensions/store-mongodb/go.mod @@ -38,7 +38,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.15.9 // indirect github.com/lestrrat-go/strftime v1.0.6 // indirect - github.com/linuxsuren/go-fake-runtime v0.0.1 // indirect + github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 // indirect github.com/linuxsuren/unstructured v0.0.1 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect diff --git a/extensions/store-mongodb/go.sum b/extensions/store-mongodb/go.sum index 0b58c5b..8fa83b4 100644 --- a/extensions/store-mongodb/go.sum +++ b/extensions/store-mongodb/go.sum @@ -202,8 +202,8 @@ github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2t github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/linuxsuren/go-fake-runtime v0.0.1 h1:ByXNvKgn5g+qnvS4KJIq/OP/fA3qCMRGxwlxsU6Weh8= -github.com/linuxsuren/go-fake-runtime v0.0.1/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 h1:4gfAkFURZJMne11sE8OFQJm0UHVNS887296Kp7qWhc8= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= github.com/linuxsuren/unstructured v0.0.1 h1:ilUA8MUYbR6l9ebo/YPV2bKqlf62bzQursDSE+j00iU= github.com/linuxsuren/unstructured v0.0.1/go.mod h1:KH6aTj+FegzGBzc1vS6mzZx3/duhTUTEVyW5sO7p4as= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= diff --git a/extensions/store-orm/go.mod b/extensions/store-orm/go.mod index 4313849..0592b69 100644 --- a/extensions/store-orm/go.mod +++ b/extensions/store-orm/go.mod @@ -48,7 +48,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.0 // indirect github.com/lestrrat-go/strftime v1.0.6 // indirect - github.com/linuxsuren/go-fake-runtime v0.0.1 // indirect + github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 // indirect github.com/linuxsuren/unstructured v0.0.1 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect diff --git a/extensions/store-orm/go.sum b/extensions/store-orm/go.sum index f36478b..9c42a34 100644 --- a/extensions/store-orm/go.sum +++ b/extensions/store-orm/go.sum @@ -216,8 +216,8 @@ github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2t github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/linuxsuren/go-fake-runtime v0.0.1 h1:ByXNvKgn5g+qnvS4KJIq/OP/fA3qCMRGxwlxsU6Weh8= -github.com/linuxsuren/go-fake-runtime v0.0.1/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 h1:4gfAkFURZJMne11sE8OFQJm0UHVNS887296Kp7qWhc8= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= github.com/linuxsuren/unstructured v0.0.1 h1:ilUA8MUYbR6l9ebo/YPV2bKqlf62bzQursDSE+j00iU= github.com/linuxsuren/unstructured v0.0.1/go.mod h1:KH6aTj+FegzGBzc1vS6mzZx3/duhTUTEVyW5sO7p4as= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= diff --git a/extensions/store-s3/go.mod b/extensions/store-s3/go.mod index 1634853..1cad8d5 100644 --- a/extensions/store-s3/go.mod +++ b/extensions/store-s3/go.mod @@ -42,7 +42,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.15.9 // indirect github.com/lestrrat-go/strftime v1.0.6 // indirect - github.com/linuxsuren/go-fake-runtime v0.0.1 // indirect + github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 // indirect github.com/linuxsuren/unstructured v0.0.1 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect diff --git a/extensions/store-s3/go.sum b/extensions/store-s3/go.sum index efee423..d151259 100644 --- a/extensions/store-s3/go.sum +++ b/extensions/store-s3/go.sum @@ -206,8 +206,8 @@ github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2t github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/linuxsuren/go-fake-runtime v0.0.1 h1:ByXNvKgn5g+qnvS4KJIq/OP/fA3qCMRGxwlxsU6Weh8= -github.com/linuxsuren/go-fake-runtime v0.0.1/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 h1:4gfAkFURZJMne11sE8OFQJm0UHVNS887296Kp7qWhc8= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= github.com/linuxsuren/unstructured v0.0.1 h1:ilUA8MUYbR6l9ebo/YPV2bKqlf62bzQursDSE+j00iU= github.com/linuxsuren/unstructured v0.0.1/go.mod h1:KH6aTj+FegzGBzc1vS6mzZx3/duhTUTEVyW5sO7p4as= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= diff --git a/go.mod b/go.mod index bdbecf9..9fd196e 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/h2non/gock v1.2.0 github.com/invopop/jsonschema v0.7.0 github.com/jhump/protoreflect v1.15.3 - github.com/linuxsuren/go-fake-runtime v0.0.1 + github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 github.com/linuxsuren/unstructured v0.0.1 github.com/prometheus/client_golang v1.16.0 github.com/signintech/gopdf v0.18.0 diff --git a/go.sum b/go.sum index 47951cb..be47601 100644 --- a/go.sum +++ b/go.sum @@ -233,8 +233,8 @@ github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2t github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/linuxsuren/go-fake-runtime v0.0.1 h1:ByXNvKgn5g+qnvS4KJIq/OP/fA3qCMRGxwlxsU6Weh8= -github.com/linuxsuren/go-fake-runtime v0.0.1/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638 h1:4gfAkFURZJMne11sE8OFQJm0UHVNS887296Kp7qWhc8= +github.com/linuxsuren/go-fake-runtime v0.0.3-0.20231202091833-f1e4aceb5638/go.mod h1:zmh6J78hSnWZo68faMA2eKOdaEp8eFbERHi3ZB9xHCQ= github.com/linuxsuren/unstructured v0.0.1 h1:ilUA8MUYbR6l9ebo/YPV2bKqlf62bzQursDSE+j00iU= github.com/linuxsuren/unstructured v0.0.1/go.mod h1:KH6aTj+FegzGBzc1vS6mzZx3/duhTUTEVyW5sO7p4as= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= diff --git a/main.go b/main.go index a5e4cfc..693f786 100644 --- a/main.go +++ b/main.go @@ -10,7 +10,7 @@ import ( ) func main() { - c := cmd.NewRootCmd(exec.DefaultExecer{}, server.NewDefaultHTTPServer()) + c := cmd.NewRootCmd(exec.NewDefaultExecer(), server.NewDefaultHTTPServer()) if err := c.Execute(); err != nil { os.Exit(1) } diff --git a/pkg/runner/runner.go b/pkg/runner/runner.go index 34133d6..64a5013 100644 --- a/pkg/runner/runner.go +++ b/pkg/runner/runner.go @@ -62,7 +62,7 @@ func NewDefaultUnimplementedRunner() UnimplementedRunner { testReporter: NewDiscardTestReporter(), writer: io.Discard, log: NewDefaultLevelWriter("info", io.Discard), - execer: fakeruntime.DefaultExecer{}, + execer: fakeruntime.NewDefaultExecer(), } } diff --git a/pkg/server/store_ext_manager_test.go b/pkg/server/store_ext_manager_test.go index a9d40ce..9174676 100644 --- a/pkg/server/store_ext_manager_test.go +++ b/pkg/server/store_ext_manager_test.go @@ -32,7 +32,7 @@ import ( ) func TestStoreExtManager(t *testing.T) { - mgr := NewStoreExtManager(fakeruntime.DefaultExecer{}) + mgr := NewStoreExtManager(fakeruntime.NewDefaultExecer()) t.Run("not found", func(t *testing.T) { err := mgr.Start("fake", "")