feat: output force quit (#29)
Reviewed-on: FOCS-dev/JOJ3#29 Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn> Co-committed-by: Boming Zhang <bomingzh@sjtu.edu.cn>
This commit is contained in:
parent
05876c290d
commit
a505b70506
|
@ -57,13 +57,13 @@ func (*Keyword) Run(results []stage.ExecutorResult, confAny any) (
|
|||
return nil, true, err
|
||||
}
|
||||
var res []stage.ParserResult
|
||||
end := false
|
||||
forceQuit := false
|
||||
for _, result := range results {
|
||||
tmp, matched := Parse(result, *conf)
|
||||
if matched && conf.EndOnMatch {
|
||||
end = true
|
||||
forceQuit = true
|
||||
}
|
||||
res = append(res, tmp)
|
||||
}
|
||||
return res, end, nil
|
||||
return res, forceQuit, nil
|
||||
}
|
||||
|
|
|
@ -19,12 +19,12 @@ func (*ResultStatus) Run(results []stage.ExecutorResult, confAny any) (
|
|||
if err != nil {
|
||||
return nil, true, err
|
||||
}
|
||||
end := false
|
||||
forceQuit := false
|
||||
var res []stage.ParserResult
|
||||
for _, result := range results {
|
||||
comment := ""
|
||||
if result.Status != stage.Status(envexec.StatusAccepted) {
|
||||
end = true
|
||||
forceQuit = true
|
||||
comment = fmt.Sprintf(
|
||||
"Unexpected executor status: %s.", result.Status,
|
||||
)
|
||||
|
@ -34,5 +34,5 @@ func (*ResultStatus) Run(results []stage.ExecutorResult, confAny any) (
|
|||
Comment: comment,
|
||||
})
|
||||
}
|
||||
return res, end, nil
|
||||
return res, forceQuit, nil
|
||||
}
|
||||
|
|
|
@ -164,6 +164,7 @@ type ParserResult struct {
|
|||
}
|
||||
|
||||
type StageResult struct {
|
||||
Name string `json:"name"`
|
||||
Results []ParserResult `json:"results"`
|
||||
Name string `json:"name"`
|
||||
Results []ParserResult `json:"results"`
|
||||
ForceQuit bool `json:"force_quit"`
|
||||
}
|
||||
|
|
|
@ -26,17 +26,18 @@ func Run(stages []Stage) []StageResult {
|
|||
slog.Error("parser not found", "name", stage.ParserName)
|
||||
break
|
||||
}
|
||||
parserResults, end, err := parser.Run(executorResults, stage.ParserConf)
|
||||
parserResults, forceQuit, err := parser.Run(executorResults, stage.ParserConf)
|
||||
if err != nil {
|
||||
slog.Error("parser run error", "name", stage.ExecutorName, "error", err)
|
||||
break
|
||||
}
|
||||
slog.Debug("parser run done", "results", parserResults)
|
||||
stageResults = append(stageResults, StageResult{
|
||||
Name: stage.Name,
|
||||
Results: parserResults,
|
||||
Name: stage.Name,
|
||||
Results: parserResults,
|
||||
ForceQuit: forceQuit,
|
||||
})
|
||||
if end {
|
||||
if forceQuit {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user