aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2025-12-31 16:27:08 +0100
committerDmitry Vyukov <dvyukov@google.com>2026-01-02 10:11:32 +0000
commitaf6b70b9a2c145f9a687e6c4056f035c6d62f2c0 (patch)
treeb8cf3a4bad988a6f6cf3d7e78f88db50dcebb066 /pkg/report
parent861b0eea752e332cb20cb1b83a8bb1885e78c537 (diff)
pkg/report: use existing osutil helpers in titleStat code
Diffstat (limited to 'pkg/report')
-rw-r--r--pkg/report/title_stat.go36
-rw-r--r--pkg/report/title_stat_test.go6
2 files changed, 8 insertions, 34 deletions
diff --git a/pkg/report/title_stat.go b/pkg/report/title_stat.go
index 5b3cd3fb7..481b25ec2 100644
--- a/pkg/report/title_stat.go
+++ b/pkg/report/title_stat.go
@@ -4,11 +4,10 @@
package report
import (
- "encoding/json"
- "errors"
"fmt"
"maps"
- "os"
+
+ "github.com/google/syzkaller/pkg/osutil"
)
func AddTitleStat(file string, reps []*Report) error {
@@ -21,39 +20,18 @@ func AddTitleStat(file string, reps []*Report) error {
return fmt.Errorf("report.ReadStatFile: %w", err)
}
stat.add(titles)
- if err := writeStatFile(file, stat); err != nil {
+ if err := osutil.WriteJSON(file, stat); err != nil {
return fmt.Errorf("writeStatFile: %w", err)
}
return nil
}
func ReadStatFile(file string) (*titleStat, error) {
- stat := &titleStat{}
- if _, err := os.Stat(file); errors.Is(err, os.ErrNotExist) {
- return stat, nil
- }
- data, err := os.ReadFile(file)
- if err != nil {
- return nil, err
+ if !osutil.IsExist(file) {
+ return &titleStat{}, nil
}
- if len(data) == 0 {
- return stat, nil
- }
- if err := json.Unmarshal(data, stat); err != nil {
- return nil, err
- }
- return stat, nil
-}
-
-func writeStatFile(file string, stat *titleStat) error {
- data, err := json.MarshalIndent(stat, "", "\t")
- if err != nil {
- return err
- }
- if err := os.WriteFile(file, data, 0644); err != nil {
- return err
- }
- return nil
+ stat, err := osutil.ReadJSON[titleStat](file)
+ return &stat, err
}
type titleStatNodes map[string]*titleStat
diff --git a/pkg/report/title_stat_test.go b/pkg/report/title_stat_test.go
index 216af456c..e08f572bd 100644
--- a/pkg/report/title_stat_test.go
+++ b/pkg/report/title_stat_test.go
@@ -4,7 +4,6 @@
package report
import (
- "os"
"testing"
"github.com/stretchr/testify/assert"
@@ -13,7 +12,6 @@ import (
func TestAddTitleStat(t *testing.T) {
tests := []struct {
name string
- base string
reps [][]*Report
want *titleStat
}{
@@ -62,10 +60,8 @@ func TestAddTitleStat(t *testing.T) {
t.Run(test.name, func(t *testing.T) {
t.Parallel()
tmpFile := t.TempDir() + "/test.input"
- err := os.WriteFile(tmpFile, []byte(test.base), 0644)
- assert.NoError(t, err)
for _, reps := range test.reps {
- err = AddTitleStat(tmpFile, reps)
+ err := AddTitleStat(tmpFile, reps)
assert.NoError(t, err)
}
got, err := ReadStatFile(tmpFile)