feat: return error message in the grpc server (#34)

This commit is contained in:
Rick 2023-04-08 20:34:31 +08:00 committed by GitHub
parent a941923526
commit a27b13aae1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 23 deletions

View File

@ -105,6 +105,7 @@ func (s *server) Run(ctx context.Context, task *TestTask) (reply *HelloReply, er
}
buf := new(bytes.Buffer)
reply = &HelloReply{}
for _, testCase := range suite.Items {
simpleRunner := runner.NewSimpleTestCaseRunner()
@ -116,14 +117,14 @@ func (s *server) Run(ctx context.Context, task *TestTask) (reply *HelloReply, er
testCase.Request.API = fmt.Sprintf("%s%s", suite.API, testCase.Request.API)
}
var output interface{}
if output, err = simpleRunner.RunTestCase(&testCase, dataContext, ctx); err == nil {
if output, testErr := simpleRunner.RunTestCase(&testCase, dataContext, ctx); testErr == nil {
dataContext[testCase.Name] = output
} else {
reply.Error = testErr.Error()
break
}
}
reply = &HelloReply{Message: buf.String()}
reply.Message = buf.String()
return
}

View File

@ -93,6 +93,7 @@ func (m *TestTask) GetEnv() map[string]string {
type HelloReply struct {
Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -130,6 +131,13 @@ func (m *HelloReply) GetMessage() string {
return ""
}
func (m *HelloReply) GetError() string {
if m != nil {
return m.Error
}
return ""
}
type Empty struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -173,24 +181,25 @@ func init() {
}
var fileDescriptor_36fb7b77b8f76c98 = []byte{
// 301 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0x4b, 0x4b, 0xfb, 0x40,
0x14, 0xc5, 0xff, 0x69, 0xfa, 0xfa, 0x5f, 0x11, 0xca, 0x45, 0x70, 0xec, 0xaa, 0x64, 0x21, 0x05,
0x6d, 0x82, 0x15, 0x44, 0x5c, 0x0a, 0x45, 0x57, 0x2e, 0x42, 0x71, 0xe1, 0x6e, 0xda, 0x5e, 0xe2,
0x98, 0xc9, 0x24, 0xcc, 0x23, 0x98, 0x8f, 0xe8, 0xb7, 0x92, 0xbc, 0x2c, 0x88, 0xab, 0x39, 0xe7,
0x37, 0xf7, 0x71, 0xe0, 0xc2, 0x79, 0x91, 0x26, 0x91, 0x21, 0x5d, 0x92, 0xee, 0x9e, 0xb0, 0xd0,
0xb9, 0xcd, 0x71, 0xdc, 0xba, 0xe0, 0xcb, 0x83, 0xe9, 0x96, 0x8c, 0xdd, 0x72, 0x93, 0x22, 0xc2,
0xf0, 0xc0, 0x2d, 0x67, 0xde, 0xc2, 0x5b, 0xfe, 0x8f, 0x1b, 0x5d, 0xb3, 0x54, 0xa8, 0x03, 0x1b,
0xb4, 0xac, 0xd6, 0x38, 0x87, 0xe9, 0x9e, 0x1b, 0x7a, 0xe1, 0x19, 0x31, 0xbf, 0xe1, 0x3f, 0x1e,
0xcf, 0x60, 0x24, 0xa9, 0x24, 0xc9, 0x86, 0xcd, 0x47, 0x6b, 0xf0, 0x0a, 0x7c, 0x52, 0x25, 0x1b,
0x2d, 0xfc, 0xe5, 0xc9, 0xfa, 0x22, 0xec, 0xa2, 0xf4, 0x8b, 0xc3, 0x8d, 0x2a, 0x37, 0xca, 0xea,
0x2a, 0xae, 0xab, 0xe6, 0x77, 0x30, 0xed, 0x01, 0xce, 0xc0, 0x4f, 0xa9, 0xea, 0x12, 0xd5, 0xb2,
0x5e, 0x50, 0x72, 0xe9, 0xa8, 0x4b, 0xd4, 0x9a, 0x87, 0xc1, 0xbd, 0x17, 0x5c, 0x02, 0x3c, 0x93,
0x94, 0x79, 0x4c, 0x85, 0xac, 0x90, 0xc1, 0x24, 0x23, 0x63, 0x78, 0x42, 0x5d, 0x77, 0x6f, 0x83,
0x09, 0x8c, 0x36, 0x59, 0x61, 0xab, 0xf5, 0x07, 0x8c, 0x63, 0xa7, 0x14, 0x69, 0x5c, 0x81, 0x1f,
0x3b, 0x85, 0xb3, 0xdf, 0xc9, 0xe6, 0xd8, 0x93, 0xe3, 0xe4, 0xe0, 0x1f, 0xde, 0x00, 0x3c, 0x91,
0x7d, 0x25, 0x6d, 0x44, 0xae, 0xf0, 0xb4, 0xaf, 0x69, 0xa6, 0xfe, 0xdd, 0xf2, 0x18, 0xbe, 0x5d,
0x27, 0xc2, 0xbe, 0xbb, 0x5d, 0xb8, 0xcf, 0xb3, 0x48, 0x0a, 0xe5, 0x3e, 0x8d, 0xd3, 0xa4, 0x22,
0x5e, 0x88, 0x95, 0x25, 0x63, 0x85, 0x4a, 0xa2, 0xe3, 0xb5, 0x76, 0xe3, 0xe6, 0x4e, 0xb7, 0xdf,
0x01, 0x00, 0x00, 0xff, 0xff, 0xa2, 0x3b, 0xc8, 0x00, 0xc2, 0x01, 0x00, 0x00,
// 311 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0x4f, 0x4b, 0xf3, 0x40,
0x10, 0xc6, 0xdf, 0x34, 0xfd, 0xf7, 0x8e, 0x08, 0x65, 0x10, 0x8c, 0x3d, 0x95, 0x9c, 0x0a, 0xda,
0x04, 0x2b, 0x88, 0x88, 0x27, 0xa1, 0xe8, 0xc9, 0x43, 0x28, 0x1e, 0xbc, 0x6d, 0xdb, 0x21, 0xc6,
0x6c, 0x36, 0x61, 0x77, 0x13, 0xcc, 0x47, 0xf4, 0x5b, 0xc9, 0x6e, 0xb2, 0x16, 0xc4, 0xd3, 0xce,
0xef, 0xd9, 0x99, 0x79, 0x1e, 0x18, 0x38, 0xaf, 0xf2, 0x34, 0x56, 0x24, 0x1b, 0x92, 0xfd, 0x13,
0x55, 0xb2, 0xd4, 0x25, 0x8e, 0x3b, 0x0a, 0xbf, 0x3c, 0x98, 0x6e, 0x49, 0xe9, 0x2d, 0x53, 0x39,
0x22, 0x0c, 0x0f, 0x4c, 0xb3, 0xc0, 0x5b, 0x78, 0xcb, 0xff, 0x89, 0xad, 0x8d, 0x96, 0x67, 0xe2,
0x10, 0x0c, 0x3a, 0xcd, 0xd4, 0x38, 0x87, 0xe9, 0x9e, 0x29, 0x7a, 0x61, 0x05, 0x05, 0xbe, 0xd5,
0x7f, 0x18, 0xcf, 0x60, 0xc4, 0xa9, 0x21, 0x1e, 0x0c, 0xed, 0x47, 0x07, 0x78, 0x09, 0x3e, 0x89,
0x26, 0x18, 0x2d, 0xfc, 0xe5, 0xc9, 0xfa, 0x22, 0xea, 0xa3, 0x38, 0xe3, 0x68, 0x23, 0x9a, 0x8d,
0xd0, 0xb2, 0x4d, 0x4c, 0xd7, 0xfc, 0x16, 0xa6, 0x4e, 0xc0, 0x19, 0xf8, 0x39, 0xb5, 0x7d, 0x22,
0x53, 0x1a, 0x83, 0x86, 0xf1, 0x9a, 0xfa, 0x44, 0x1d, 0xdc, 0x0f, 0xee, 0xbc, 0xf0, 0x01, 0xe0,
0x99, 0x38, 0x2f, 0x13, 0xaa, 0x78, 0x8b, 0x01, 0x4c, 0x0a, 0x52, 0x8a, 0xa5, 0xd4, 0x4f, 0x3b,
0x34, 0x1b, 0x48, 0xca, 0x52, 0xba, 0x0d, 0x16, 0xc2, 0x09, 0x8c, 0x36, 0x45, 0xa5, 0xdb, 0xf5,
0x07, 0x8c, 0x93, 0x5a, 0x08, 0x92, 0xb8, 0x02, 0x3f, 0xa9, 0x05, 0xce, 0x7e, 0xe7, 0x9d, 0xa3,
0x53, 0x8e, 0x7e, 0xe1, 0x3f, 0xbc, 0x06, 0x78, 0x22, 0xfd, 0x4a, 0x52, 0x65, 0xa5, 0xc0, 0x53,
0xd7, 0x63, 0xb7, 0xfe, 0x3d, 0xf2, 0x18, 0xbd, 0x5d, 0xa5, 0x99, 0x7e, 0xaf, 0x77, 0xd1, 0xbe,
0x2c, 0x62, 0x9e, 0x89, 0xfa, 0x53, 0xd5, 0x92, 0x44, 0xcc, 0xaa, 0x6c, 0xa5, 0x49, 0xe9, 0x4c,
0xa4, 0xf1, 0xf1, 0x86, 0xbb, 0xb1, 0xbd, 0xde, 0xcd, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x30,
0xde, 0x43, 0x18, 0xd8, 0x01, 0x00, 0x00,
}

View File

@ -19,6 +19,7 @@ message TestTask {
message HelloReply {
string message = 1;
string error = 2;
}
message Empty {

View File

@ -19,6 +19,7 @@ func TestUnimplement(t *testing.T) {
var reply *server.HelloReply
assert.Empty(t, reply.GetMessage())
assert.Empty(t, reply.GetError())
assert.Empty(t, &server.Empty{})
var task *server.TestTask
@ -47,6 +48,7 @@ func TestServer(t *testing.T) {
reply, err := client.GetVersion(context.Background(), &server.Empty{})
assert.NotNil(t, reply)
assert.Equal(t, "version", reply.GetMessage())
assert.Empty(t, reply.GetError())
assert.Nil(t, err)
reply, err = client.Run(context.Background(), &server.TestTask{})