feat(parser/diff): log parser summary
This commit is contained in:
parent
ea75e992aa
commit
c2818bb348
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
|
|
||||||
|
"github.com/criyle/go-judge/envexec"
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -35,6 +36,13 @@ type Conf struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type DiffParserSummary struct {
|
||||||
|
Status stage.Status
|
||||||
|
Time uint64
|
||||||
|
Memory uint64
|
||||||
|
RunTime uint64
|
||||||
|
}
|
||||||
|
|
||||||
type Diff struct{}
|
type Diff struct{}
|
||||||
|
|
||||||
func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
|
func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
|
||||||
|
@ -50,10 +58,19 @@ func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
|
||||||
|
|
||||||
var res []stage.ParserResult
|
var res []stage.ParserResult
|
||||||
forceQuit := false
|
forceQuit := false
|
||||||
|
var summary DiffParserSummary
|
||||||
|
summary.Status = stage.Status(envexec.StatusAccepted)
|
||||||
for i, caseConf := range conf.Cases {
|
for i, caseConf := range conf.Cases {
|
||||||
result := results[i]
|
result := results[i]
|
||||||
score := 0
|
score := 0
|
||||||
comment := ""
|
comment := ""
|
||||||
|
if result.Status != stage.Status(envexec.StatusAccepted) &&
|
||||||
|
summary.Status == stage.Status(envexec.StatusAccepted) {
|
||||||
|
summary.Status = result.Status
|
||||||
|
}
|
||||||
|
summary.Time += result.Time
|
||||||
|
summary.Memory += result.Memory
|
||||||
|
summary.RunTime += result.RunTime
|
||||||
for _, output := range caseConf.Outputs {
|
for _, output := range caseConf.Outputs {
|
||||||
answer, err := os.ReadFile(output.AnswerPath)
|
answer, err := os.ReadFile(output.AnswerPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -104,6 +121,7 @@ func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
|
||||||
Comment: comment,
|
Comment: comment,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
slog.Info("diff parser run done", "diffParserSummary", summary)
|
||||||
|
|
||||||
return res, forceQuit, nil
|
return res, forceQuit, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user