aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/fuzz.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2021-08-02 17:08:58 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2021-08-06 15:34:58 +0200
commitde040344f89656862b5bbd306b8a9c143dae3dea (patch)
tree41bf6feec26d42e6ec18ce7d55e6a2b1f0bbc1d9 /pkg/report/fuzz.go
parent00fc459663540df701f62355dc1871a583021aa7 (diff)
pkg/report: separate reporter wrapper from OS-specific implementations
Currently a number of report post-processing activities are implemented as a decorator over the interface that defines OS-specific implementations. Following exactly the same interface is too restrictive in this case as adding extra parameters to the post-processing forces the developer to adjust all implementations thay may not need these parameters at all. Untie the wrapper from the Reporter interface. Use a package-private reporterImpl interface for the OS-specific implementations, while having an exported Reporter structure. Make sure that Reporter is stored and passed as a pointer.
Diffstat (limited to 'pkg/report/fuzz.go')
-rw-r--r--pkg/report/fuzz.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/pkg/report/fuzz.go b/pkg/report/fuzz.go
index 8952baf76..2e747929a 100644
--- a/pkg/report/fuzz.go
+++ b/pkg/report/fuzz.go
@@ -13,7 +13,7 @@ import (
func Fuzz(data []byte) int {
res := 0
for os, reporter := range fuzzReporters {
- typ := reporter.(*reporterWrapper).typ
+ typ := reporter.typ
containsCrash := reporter.ContainsCrash(data)
rep := reporter.Parse(data)
if containsCrash != (rep != nil) {
@@ -64,8 +64,8 @@ func Fuzz(data []byte) int {
return res
}
-var fuzzReporters = func() map[string]Reporter {
- reporters := make(map[string]Reporter)
+var fuzzReporters = func() map[string]*Reporter {
+ reporters := make(map[string]*Reporter)
for os := range ctors {
if os == targets.Windows {
continue
@@ -80,7 +80,7 @@ var fuzzReporters = func() map[string]Reporter {
if err != nil {
panic(err)
}
- if _, ok := reporter.(*stub); ok {
+ if _, ok := reporter.impl.(*stub); ok {
continue
}
reporters[os] = reporter