From 46afcecb86058ec9598480d6140f404266a02868 Mon Sep 17 00:00:00 2001 From: tdakkota Date: Wed, 18 Sep 2024 15:38:16 +0300 Subject: [PATCH] test(rfc5424): add fuzzing test for parmeter escaping --- rfc5424/fuzz_test.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 rfc5424/fuzz_test.go diff --git a/rfc5424/fuzz_test.go b/rfc5424/fuzz_test.go new file mode 100644 index 0000000..b699420 --- /dev/null +++ b/rfc5424/fuzz_test.go @@ -0,0 +1,35 @@ +package rfc5424 + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func FuzzParameterEscaping(f *testing.F) { + for _, r := range []string{ + ``, + `{"escape\x20me": [""]}`, + `хлеб`, // test unicode + `🇺🇬👁️‍🗨️`, // test grapheme cluster + } { + f.Add(r) + } + + f.Fuzz(func(t *testing.T, payload string) { + msg := new(SyslogMessage) + msg.SetPriority(1) + msg.SetVersion(1) + msg.SetTimestamp(time.Now().Format(time.RFC3339)) + msg.SetMessage("hello") + msg.SetParameter("general@0", "payload", payload) + + data, err := msg.String() + require.NoError(t, err) + + parsed, err := NewParser().Parse([]byte(data)) + require.NoError(t, err) + require.Equal(t, msg, parsed) + }) +}