From a6df4e09c9ec40b3ef047e49962f2dfec701edc7 Mon Sep 17 00:00:00 2001 From: thatInfrastructureGuy Date: Mon, 31 Aug 2020 20:23:38 -0700 Subject: [PATCH] Add more test cases for grpc checks Signed-off-by: thatInfrastructureGuy --- types/services/routine.go | 3 +++ types/services/routine_test.go | 47 +++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/types/services/routine.go b/types/services/routine.go index 924470c3..98b6a000 100644 --- a/types/services/routine.go +++ b/types/services/routine.go @@ -125,6 +125,9 @@ func CheckGrpc(s *Service, record bool) (*Service, error) { if err != nil { // Unable to parse. log.Warnln(fmt.Sprintf("GRPC Service: '%s', Unable to parse URL: '%v'", s.Name, s.Domain)) + if record { + RecordFailure(s, fmt.Sprintf("Unable to parse GRPC domain %v, %v", s.Domain, err), "parse_domain") + } } // Set domain as hostname without port number. diff --git a/types/services/routine_test.go b/types/services/routine_test.go index 7027762c..2228d5ce 100644 --- a/types/services/routine_test.go +++ b/types/services/routine_test.go @@ -97,6 +97,51 @@ var testdata = []struct { VerifySSL: null.NewNullBool(true), }, }, + { + grpcService: func(port int) *grpc.Server { + return grpcServer(port, true) + }, + clientChecker: &Service{ + Name: "Check GRPC Server with http:// url", + Domain: "http://localhost", + Port: 50058, + Expected: null.NewNullString("status:SERVING"), + ExpectedStatus: 1, + Type: "grpc", + Timeout: 1, + VerifySSL: null.NewNullBool(false), + }, + }, + { + grpcService: func(port int) *grpc.Server { + return grpcServer(port, true) + }, + clientChecker: &Service{ + Name: "Unparseable Url Error", + Domain: "http://local//host", + Port: 50059, + Expected: null.NewNullString(""), + ExpectedStatus: 0, + Type: "grpc", + Timeout: 1, + VerifySSL: null.NewNullBool(false), + }, + }, + { + grpcService: func(port int) *grpc.Server { + return grpcServer(50060, true) + }, + clientChecker: &Service{ + Name: "Check GRPC on HTTP server", + Domain: "https://google.com", + Port: 443, + Expected: null.NewNullString(""), + ExpectedStatus: 0, + Type: "grpc", + Timeout: 1, + VerifySSL: null.NewNullBool(false), + }, + }, } // grpcServer creates grpc Service with optional parameters. @@ -128,7 +173,7 @@ func TestCheckGrpc(t *testing.T) { defer server.Stop() v.clientChecker.CheckService(false) if v.clientChecker.LastStatusCode != v.clientChecker.ExpectedStatus || strings.TrimSpace(v.clientChecker.LastResponse) != v.clientChecker.Expected.String { - t.Errorf("Expected message: '%v', Got message: '%v' , Expected Status: '%v', Got Status: '%v'", v.clientChecker.Expected, v.clientChecker.LastResponse, v.clientChecker.ExpectedStatus, v.clientChecker.LastStatusCode) + t.Errorf("Expected message: '%v', Got message: '%v' , Expected Status: '%v', Got Status: '%v'", v.clientChecker.Expected.String, v.clientChecker.LastResponse, v.clientChecker.ExpectedStatus, v.clientChecker.LastStatusCode) } }) }