From dae7d80759ad6aacf8ffb0e295a60e7a93647493 Mon Sep 17 00:00:00 2001 From: Winni Neessen Date: Sat, 23 Mar 2024 16:46:21 +0100 Subject: [PATCH] Add fuzzing tests for subject and from fields in msg_test.go Included two new fuzzing tests for 'Subject' and 'From' to increase code coverage and reliability. These tests expand our checking strategy by using dynamic inputs and making sure no unexpected errors occur when dealing with a variety of possible input scenarios. --- msg_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/msg_test.go b/msg_test.go index 7bcf06b..e73bf81 100644 --- a/msg_test.go +++ b/msg_test.go @@ -3219,3 +3219,31 @@ func TestNewMsgWithNoDefaultUserAgent(t *testing.T) { t.Errorf("WithNoDefaultUserAgent() failed. Expected: %t, got: %t", true, false) } } + +// Fuzzing tests +func FuzzMsg_Subject(f *testing.F) { + f.Add("Testsubject") + f.Add("") + f.Add("This is a longer test subject.") + f.Add("Let's add some umlauts: üäöß") + f.Add("Or even emojis: ☝️💪👍") + f.Fuzz(func(t *testing.T, data string) { + m := NewMsg() + m.Subject(data) + m.Reset() + }) +} + +func FuzzMsg_From(f *testing.F) { + f.Add("Toni Tester ") + f.Add("") + f.Add("mail@server.com") + f.Fuzz(func(t *testing.T, data string) { + m := NewMsg() + if err := m.From(data); err != nil && + !strings.Contains(err.Error(), "failed to parse mail address") { + t.Errorf("failed set set FROM address: %s", err) + } + m.Reset() + }) +}