diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2021-08-02 17:08:58 +0000 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2021-08-06 15:34:58 +0200 |
| commit | de040344f89656862b5bbd306b8a9c143dae3dea (patch) | |
| tree | 41bf6feec26d42e6ec18ce7d55e6a2b1f0bbc1d9 /pkg/report/fuzz.go | |
| parent | 00fc459663540df701f62355dc1871a583021aa7 (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.go | 8 |
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 |
