From 64d6067892cd0e6307d499ba725b7a5f8e6a25a7 Mon Sep 17 00:00:00 2001 From: Sai Kiran <85323324+r00tu53r@users.noreply.github.com> Date: Mon, 21 Mar 2022 13:46:05 +1100 Subject: [PATCH 1/5] Handle error for 0 doc hits for a data stream --- internal/testrunner/runners/system/runner.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/testrunner/runners/system/runner.go b/internal/testrunner/runners/system/runner.go index d082d4e4a3..d70734995a 100644 --- a/internal/testrunner/runners/system/runner.go +++ b/internal/testrunner/runners/system/runner.go @@ -650,6 +650,14 @@ func writeSampleEvent(path string, doc common.MapStr) error { func validateFields(docs []common.MapStr, fieldsValidator *fields.Validator, dataStream string) error { var multiErr multierror.Error + + // prevents panic and performs cleanup/teardown for cases where + // no hits were found for a data stream + if docs == nil || len(docs) == 0 { + multiErr = append(multiErr, fmt.Errorf("no documents found in %s data stream", dataStream)) + return multiErr + } + for _, doc := range docs { if message, err := doc.GetValue("error.message"); err != common.ErrKeyNotFound { multiErr = append(multiErr, fmt.Errorf("found error.message in event: %v", message)) From eabd261cc038ef0126214c00e902bdc55ad5939a Mon Sep 17 00:00:00 2001 From: Sai Kiran <85323324+r00tu53r@users.noreply.github.com> Date: Tue, 22 Mar 2022 07:38:42 +1100 Subject: [PATCH 2/5] lint: fix nil check --- internal/testrunner/runners/system/runner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/testrunner/runners/system/runner.go b/internal/testrunner/runners/system/runner.go index d70734995a..f2db1ba07a 100644 --- a/internal/testrunner/runners/system/runner.go +++ b/internal/testrunner/runners/system/runner.go @@ -653,7 +653,7 @@ func validateFields(docs []common.MapStr, fieldsValidator *fields.Validator, dat // prevents panic and performs cleanup/teardown for cases where // no hits were found for a data stream - if docs == nil || len(docs) == 0 { + if len(docs) == 0 { multiErr = append(multiErr, fmt.Errorf("no documents found in %s data stream", dataStream)) return multiErr } From 2e906c7df850c852d76e46844eaad0b8345ee28d Mon Sep 17 00:00:00 2001 From: Sai Kiran <85323324+r00tu53r@users.noreply.github.com> Date: Tue, 22 Mar 2022 23:49:07 +1100 Subject: [PATCH 3/5] remove return: allow fall through till multiError is wrapped in ErrTestCaseFailed --- internal/testrunner/runners/system/runner.go | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/internal/testrunner/runners/system/runner.go b/internal/testrunner/runners/system/runner.go index f2db1ba07a..187671ae41 100644 --- a/internal/testrunner/runners/system/runner.go +++ b/internal/testrunner/runners/system/runner.go @@ -655,19 +655,18 @@ func validateFields(docs []common.MapStr, fieldsValidator *fields.Validator, dat // no hits were found for a data stream if len(docs) == 0 { multiErr = append(multiErr, fmt.Errorf("no documents found in %s data stream", dataStream)) - return multiErr - } - - for _, doc := range docs { - if message, err := doc.GetValue("error.message"); err != common.ErrKeyNotFound { - multiErr = append(multiErr, fmt.Errorf("found error.message in event: %v", message)) - continue - } + } else { + for _, doc := range docs { + if message, err := doc.GetValue("error.message"); err != common.ErrKeyNotFound { + multiErr = append(multiErr, fmt.Errorf("found error.message in event: %v", message)) + continue + } - errs := fieldsValidator.ValidateDocumentMap(doc) - if errs != nil { - multiErr = append(multiErr, errs...) - continue + errs := fieldsValidator.ValidateDocumentMap(doc) + if errs != nil { + multiErr = append(multiErr, errs...) + continue + } } } From 2656ce277027ce4397a8858d2b50d93803f659f3 Mon Sep 17 00:00:00 2001 From: Sai Kiran <85323324+r00tu53r@users.noreply.github.com> Date: Fri, 25 Mar 2022 17:39:21 +1100 Subject: [PATCH 4/5] Return error if test failed due to 0 hits --- internal/testrunner/runners/system/runner.go | 25 ++++++++------------ 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/internal/testrunner/runners/system/runner.go b/internal/testrunner/runners/system/runner.go index 187671ae41..b297fbc8c4 100644 --- a/internal/testrunner/runners/system/runner.go +++ b/internal/testrunner/runners/system/runner.go @@ -434,6 +434,7 @@ func (r *runner) runTest(config *testConfig, ctxt servicedeployer.ServiceContext if !passed { result.FailureMsg = fmt.Sprintf("could not find hits in %s data stream", dataStream) + return result.WithError(fmt.Errorf("%s", result.FailureMsg)) } // Validate fields in docs @@ -651,22 +652,16 @@ func writeSampleEvent(path string, doc common.MapStr) error { func validateFields(docs []common.MapStr, fieldsValidator *fields.Validator, dataStream string) error { var multiErr multierror.Error - // prevents panic and performs cleanup/teardown for cases where - // no hits were found for a data stream - if len(docs) == 0 { - multiErr = append(multiErr, fmt.Errorf("no documents found in %s data stream", dataStream)) - } else { - for _, doc := range docs { - if message, err := doc.GetValue("error.message"); err != common.ErrKeyNotFound { - multiErr = append(multiErr, fmt.Errorf("found error.message in event: %v", message)) - continue - } + for _, doc := range docs { + if message, err := doc.GetValue("error.message"); err != common.ErrKeyNotFound { + multiErr = append(multiErr, fmt.Errorf("found error.message in event: %v", message)) + continue + } - errs := fieldsValidator.ValidateDocumentMap(doc) - if errs != nil { - multiErr = append(multiErr, errs...) - continue - } + errs := fieldsValidator.ValidateDocumentMap(doc) + if errs != nil { + multiErr = append(multiErr, errs...) + continue } } From a2cc81d61f009f836a0672e356edfbe63c998618 Mon Sep 17 00:00:00 2001 From: Sai Kiran <85323324+r00tu53r@users.noreply.github.com> Date: Fri, 25 Mar 2022 17:41:28 +1100 Subject: [PATCH 5/5] Remove extra new line --- internal/testrunner/runners/system/runner.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/testrunner/runners/system/runner.go b/internal/testrunner/runners/system/runner.go index b297fbc8c4..1ecedeb361 100644 --- a/internal/testrunner/runners/system/runner.go +++ b/internal/testrunner/runners/system/runner.go @@ -651,7 +651,6 @@ func writeSampleEvent(path string, doc common.MapStr) error { func validateFields(docs []common.MapStr, fieldsValidator *fields.Validator, dataStream string) error { var multiErr multierror.Error - for _, doc := range docs { if message, err := doc.GetValue("error.message"); err != common.ErrKeyNotFound { multiErr = append(multiErr, fmt.Errorf("found error.message in event: %v", message))