From 3cd4847093f875b3bc7ae57ddec74a12b1003736 Mon Sep 17 00:00:00 2001 From: "Thibault \"bui\" Koechlin" Date: Mon, 16 Oct 2023 09:54:19 +0200 Subject: [PATCH] sort map keys when generating asserts (#2494) * sort map keys when generating asserts --- pkg/hubtest/parser_assert.go | 18 +++++++++++------- pkg/hubtest/utils.go | 10 ++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/pkg/hubtest/parser_assert.go b/pkg/hubtest/parser_assert.go index d579a1be4..c9a183336 100644 --- a/pkg/hubtest/parser_assert.go +++ b/pkg/hubtest/parser_assert.go @@ -232,30 +232,34 @@ func (p *ParserAssert) AutoGenParserAssert() string { if !result.Success { continue } - for pkey, pval := range result.Evt.Parsed { + for _, pkey := range sortedMapKeys(result.Evt.Parsed) { + pval := result.Evt.Parsed[pkey] if pval == "" { continue } ret += fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Parsed["%s"] == "%s"`+"\n", stage, parser, pidx, pkey, Escape(pval)) } - for mkey, mval := range result.Evt.Meta { + for _, mkey := range sortedMapKeys(result.Evt.Meta) { + mval := result.Evt.Meta[mkey] if mval == "" { continue } ret += fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Meta["%s"] == "%s"`+"\n", stage, parser, pidx, mkey, Escape(mval)) } - for ekey, eval := range result.Evt.Enriched { + for _, ekey := range sortedMapKeys(result.Evt.Enriched) { + eval := result.Evt.Enriched[ekey] if eval == "" { continue } ret += fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Enriched["%s"] == "%s"`+"\n", stage, parser, pidx, ekey, Escape(eval)) } - for ekey, eval := range result.Evt.Unmarshaled { - if eval == "" { + for _, ukey := range sortedMapKeys(result.Evt.Unmarshaled) { + uval := result.Evt.Unmarshaled[ukey] + if uval == "" { continue } - base := fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Unmarshaled["%s"]`, stage, parser, pidx, ekey) - for _, line := range p.buildUnmarshaledAssert(base, eval) { + base := fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Unmarshaled["%s"]`, stage, parser, pidx, ukey) + for _, line := range p.buildUnmarshaledAssert(base, uval) { ret += line } } diff --git a/pkg/hubtest/utils.go b/pkg/hubtest/utils.go index 0ace4860d..5ccbbad39 100644 --- a/pkg/hubtest/utils.go +++ b/pkg/hubtest/utils.go @@ -4,8 +4,18 @@ import ( "fmt" "os" "path/filepath" + "sort" ) +func sortedMapKeys[V any](m map[string]V) []string { + keys := make([]string, 0, len(m)) + for k := range m { + keys = append(keys, k) + } + sort.Strings(keys) + return keys +} + func Copy(src string, dst string) error { content, err := os.ReadFile(src) if err != nil {