aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/title_stat.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/report/title_stat.go')
-rw-r--r--pkg/report/title_stat.go36
1 files changed, 7 insertions, 29 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