From 847160eff2f092c6262ce17ea8f9f2d85e50d526 Mon Sep 17 00:00:00 2001 From: rick Date: Thu, 11 Jul 2024 03:00:37 +0000 Subject: [PATCH] feat: enable refelction of the extension server --- e2e/test-suite-common.yaml | 6 ++++++ go.mod | 3 ++- pkg/extension/option.go | 2 ++ pkg/runner/grpc.go | 3 ++- pkg/server/remote_server.go | 2 +- pkg/testing/parser.go | 28 ++++++++++++++-------------- 6 files changed, 27 insertions(+), 17 deletions(-) diff --git a/e2e/test-suite-common.yaml b/e2e/test-suite-common.yaml index ffb7c57f..40c193df 100644 --- a/e2e/test-suite-common.yaml +++ b/e2e/test-suite-common.yaml @@ -212,6 +212,12 @@ items: "suite": "{{.param.suiteName}}", "testcase": "{{.param.caseName}}" } +- name: deleteTestSuite + request: + api: /suites/{{.param.suiteName}} + method: DELETE + header: + X-Store-Name: "{{.param.store}}" - name: createGRPCSuite request: api: /suites diff --git a/go.mod b/go.mod index 6e15b4ee..20e2a959 100644 --- a/go.mod +++ b/go.mod @@ -35,6 +35,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/oauth2 v0.18.0 golang.org/x/sync v0.6.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 google.golang.org/grpc v1.62.1 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 @@ -87,7 +88,7 @@ require ( golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/extension/option.go b/pkg/extension/option.go index 6092e812..29329c78 100644 --- a/pkg/extension/option.go +++ b/pkg/extension/option.go @@ -27,6 +27,7 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" "google.golang.org/grpc" + "google.golang.org/grpc/reflection" ) // Extension is the default command option of the extension @@ -79,6 +80,7 @@ func CreateRunner(ext *Extension, c *cobra.Command, remoteServer remote.LoaderSe gRPCServer := grpc.NewServer() remote.RegisterLoaderServer(gRPCServer, remoteServer) + reflection.Register(gRPCServer) c.Printf("%s@%s is running at %s\n", ext.GetFullName(), version.GetVersion(), address) RegisterStopSignal(c.Context(), func() { diff --git a/pkg/runner/grpc.go b/pkg/runner/grpc.go index bf71c3b8..7c9e2662 100644 --- a/pkg/runner/grpc.go +++ b/pkg/runner/grpc.go @@ -129,7 +129,7 @@ func (r *gRPCTestCaseRunner) RunTestCase(testcase *testing.TestCase, dataContext if err == protoregistry.NotFound { return nil, fmt.Errorf("api %q is not found", testcase.Request.API) } - return nil, err + return nil, fmt.Errorf("failed to get method descriptor: %v", err) } // pass the headers into gRPC request metadata @@ -424,6 +424,7 @@ func getByProto(ctx context.Context, r *gRPCTestCaseRunner, fullName protoreflec linker, err := compileProto(ctx, r) if err != nil { + err = fmt.Errorf("failed to compile proto: %v", err) return nil, err } diff --git a/pkg/server/remote_server.go b/pkg/server/remote_server.go index f3adaf15..0173bccf 100644 --- a/pkg/server/remote_server.go +++ b/pkg/server/remote_server.go @@ -516,7 +516,7 @@ func (s *server) RunTestCase(ctx context.Context, in *TestCaseIdentity) (result if result.Error == "" { ExecutionSuccessNum.Inc() } else { - ExecutionFailNum.Inc() + ExecutionFailNum.Inc() } }() diff --git a/pkg/testing/parser.go b/pkg/testing/parser.go index 2c9fe501..68cffb45 100644 --- a/pkg/testing/parser.go +++ b/pkg/testing/parser.go @@ -16,21 +16,21 @@ limitations under the License. package testing import ( - "bytes" - "errors" - "fmt" - "io" - "mime/multipart" - "net/http" - "net/url" - "os" - "path" - "strings" + "bytes" + "errors" + "fmt" + "io" + "mime/multipart" + "net/http" + "net/url" + "os" + "path" + "strings" - "github.com/linuxsuren/api-testing/docs" - "github.com/linuxsuren/api-testing/pkg/render" - "github.com/linuxsuren/api-testing/pkg/util" - "gopkg.in/yaml.v3" + "github.com/linuxsuren/api-testing/docs" + "github.com/linuxsuren/api-testing/pkg/render" + "github.com/linuxsuren/api-testing/pkg/util" + "gopkg.in/yaml.v3" ) const (