MCPcopy Index your code
hub / github.com/crowdsecurity/crowdsec / AutoGenParserAssert

Method AutoGenParserAssert

pkg/hubtest/parser_assert.go:234–312  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

232}
233
234func (p *ParserAssert) AutoGenParserAssert() string {
235 // attempt to autogen parser asserts
236 ret := fmt.Sprintf("len(results) == %d\n", len(*p.TestData))
237
238 // sort map keys for consistent order
239 stages := maptools.SortedKeys(*p.TestData)
240
241 for _, stage := range stages {
242 parsers := (*p.TestData)[stage]
243
244 // sort map keys for consistent order
245 pnames := maptools.SortedKeys(parsers)
246
247 for _, parser := range pnames {
248 presults := parsers[parser]
249 ret += fmt.Sprintf(`len(results["%s"]["%s"]) == %d`+"\n", stage, parser, len(presults))
250
251 for pidx, result := range presults {
252 ret += fmt.Sprintf(`results["%s"]["%s"][%d].Success == %t`+"\n", stage, parser, pidx, result.Success)
253
254 if !result.Success {
255 continue
256 }
257
258 for _, pkey := range maptools.SortedKeys(result.Evt.Parsed) {
259 pval := result.Evt.Parsed[pkey]
260 if pval == "" {
261 continue
262 }
263
264 ret += fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Parsed["%s"] == "%s"`+"\n", stage, parser, pidx, pkey, Escape(pval))
265 }
266
267 for _, mkey := range maptools.SortedKeys(result.Evt.Meta) {
268 mval := result.Evt.Meta[mkey]
269 if mval == "" {
270 continue
271 }
272
273 if mkey == "datasource_path" {
274 ret += fmt.Sprintf(`basename(results["%s"]["%s"][%d].Evt.Meta["%s"]) == "%s"`+"\n", stage, parser, pidx, mkey, Escape(filepath.Base(mval)))
275 } else {
276 ret += fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Meta["%s"] == "%s"`+"\n", stage, parser, pidx, mkey, Escape(mval))
277 }
278 }
279
280 for _, ekey := range maptools.SortedKeys(result.Evt.Enriched) {
281 eval := result.Evt.Enriched[ekey]
282 if eval == "" {
283 continue
284 }
285
286 ret += fmt.Sprintf(`results["%s"]["%s"][%d].Evt.Enriched["%s"] == "%s"`+"\n", stage, parser, pidx, ekey, Escape(eval))
287 }
288
289 for _, ukey := range maptools.SortedKeys(result.Evt.Unmarshaled) {
290 uval := result.Evt.Unmarshaled[ukey]
291 if uval == "" {

Callers 1

AutoGenFromFileMethod · 0.95

Calls 2

EscapeFunction · 0.85

Tested by

no test coverage detected