diff options
| -rw-r--r-- | pkg/report/title_stat.go | 36 | ||||
| -rw-r--r-- | pkg/report/title_stat_test.go | 6 |
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) |
