summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdamKorcz <44787359+AdamKorcz@users.noreply.github.com>2023-01-05 02:33:00 +0000
committerGitHub <noreply@github.com>2023-01-05 10:33:00 +0800
commit906d8cc5dc41d41f0cd9230d99aa08acb7c8f6f5 (patch)
treefc2ad010f7ea647ab4b7f8ace6bed68c6307b9fb
parentf41ad344cb248082f8beb773e67ab48c5d1f61ab (diff)
downloadgitea-906d8cc5dc41d41f0cd9230d99aa08acb7c8f6f5.tar.gz
gitea-906d8cc5dc41d41f0cd9230d99aa08acb7c8f6f5.zip
Rewrite fuzzers to native Go harnesses (#22313)
-rw-r--r--tools/fuzz.go50
-rw-r--r--tools/fuzz_test.go38
2 files changed, 38 insertions, 50 deletions
diff --git a/tools/fuzz.go b/tools/fuzz.go
deleted file mode 100644
index 449ba67067..0000000000
--- 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 0000000000..106ed19a42
--- /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)
+ })
+}