mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-01 05:36:19 +01:00
Rewrite fuzzers to native Go harnesses (#22313)
This commit is contained in:
parent
f41ad344cb
commit
906d8cc5dc
2 changed files with 38 additions and 50 deletions
|
@ -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
|
|
||||||
}
|
|
38
tools/fuzz_test.go
Normal file
38
tools/fuzz_test.go
Normal file
|
@ -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)
|
||||||
|
})
|
||||||
|
}
|
Loading…
Reference in a new issue