diff options
author | AdamKorcz | 2023-01-05 02:33:00 +0000 |
---|---|---|
committer | GitHub | 2023-01-05 10:33:00 +0800 |
commit | 906d8cc5dc41d41f0cd9230d99aa08acb7c8f6f5 (patch) | |
tree | fc2ad010f7ea647ab4b7f8ace6bed68c6307b9fb /tools | |
parent | f41ad344cb248082f8beb773e67ab48c5d1f61ab (diff) |
Rewrite fuzzers to native Go harnesses (#22313)
Diffstat (limited to 'tools')
-rw-r--r-- | tools/fuzz.go | 50 | ||||
-rw-r--r-- | tools/fuzz_test.go | 38 |
2 files changed, 38 insertions, 50 deletions
diff --git a/tools/fuzz.go b/tools/fuzz.go deleted file mode 100644 index 449ba6706..000000000 --- a/tools/fuzz.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2020 The Gitea Authors. All rights reserved. -// SPDX-License-Identifier: MIT - -//go:build gofuzz - -package fuzz - -import ( - "bytes" - "context" - "io" - - "code.gitea.io/gitea/modules/markup" - "code.gitea.io/gitea/modules/markup/markdown" - "code.gitea.io/gitea/modules/setting" -) - -// Contains fuzzing functions executed by -// fuzzing engine https://github.com/dvyukov/go-fuzz -// -// The function must return 1 if the fuzzer should increase priority of the given input during subsequent fuzzing -// (for example, the input is lexically correct and was parsed successfully). -// -1 if the input must not be added to corpus even if gives new coverage and 0 otherwise. - -var renderContext = markup.RenderContext{ - Ctx: context.Background(), - URLPrefix: "https://example.com/go-gitea/gitea", - Metas: map[string]string{ - "user": "go-gitea", - "repo": "gitea", - }, -} - -func FuzzMarkdownRenderRaw(data []byte) int { - setting.AppURL = "http://localhost:3000/" - err := markdown.RenderRaw(&renderContext, bytes.NewReader(data), io.Discard) - if err != nil { - return 0 - } - return 1 -} - -func FuzzMarkupPostProcess(data []byte) int { - setting.AppURL = "http://localhost:3000/" - err := markup.PostProcess(&renderContext, bytes.NewReader(data), io.Discard) - if err != nil { - return 0 - } - return 1 -} diff --git a/tools/fuzz_test.go b/tools/fuzz_test.go new file mode 100644 index 000000000..106ed19a4 --- /dev/null +++ b/tools/fuzz_test.go @@ -0,0 +1,38 @@ +// Copyright 2023 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package main + +import ( + "bytes" + "context" + "io" + "testing" + + "code.gitea.io/gitea/modules/markup" + "code.gitea.io/gitea/modules/markup/markdown" + "code.gitea.io/gitea/modules/setting" +) + +var renderContext = markup.RenderContext{ + Ctx: context.Background(), + URLPrefix: "https://example.com/go-gitea/gitea", + Metas: map[string]string{ + "user": "go-gitea", + "repo": "gitea", + }, +} + +func FuzzMarkdownRenderRaw(f *testing.F) { + f.Fuzz(func(t *testing.T, data []byte) { + setting.AppURL = "http://localhost:3000/" + markdown.RenderRaw(&renderContext, bytes.NewReader(data), io.Discard) + }) +} + +func FuzzMarkupPostProcess(f *testing.F) { + f.Fuzz(func(t *testing.T, data []byte) { + setting.AppURL = "http://localhost:3000/" + markup.PostProcess(&renderContext, bytes.NewReader(data), io.Discard) + }) +} |