feat(parser): support force quit on deduct

This commit is contained in:
张泊明518370910136 2024-11-02 03:36:32 -04:00
parent ecac4986de
commit 24204b47af
GPG Key ID: D47306D7062CDA9D
3 changed files with 37 additions and 19 deletions

View File

@ -14,11 +14,12 @@ type Match struct {
}
type Conf struct {
Score int
RootDir string `default:"/w"`
Matches []Match
Stdout string `default:"stdout"`
Stderr string `default:"stderr"`
Score int
RootDir string `default:"/w"`
Matches []Match
Stdout string `default:"stdout"`
Stderr string `default:"stderr"`
ForceQuitOnDeduct bool `default:"false"`
}
type ClangTidy struct{}
@ -56,8 +57,13 @@ func (*ClangTidy) Run(results []stage.ExecutorResult, confAny any) (
return nil, true, err
}
var res []stage.ParserResult
forceQuit := false
for _, result := range results {
res = append(res, Parse(result, *conf))
parseRes := Parse(result, *conf)
if conf.ForceQuitOnDeduct && parseRes.Score < conf.Score {
forceQuit = true
}
res = append(res, parseRes)
}
return res, false, nil
return res, forceQuit, nil
}

View File

@ -15,10 +15,11 @@ type Match struct {
}
type Conf struct {
Score int
Matches []Match
Stdout string `default:"stdout"`
Stderr string `default:"stderr"`
Score int
Matches []Match
Stdout string `default:"stdout"`
Stderr string `default:"stderr"`
ForceQuitOnDeduct bool `default:"false"`
}
type Record struct {
@ -89,8 +90,13 @@ func (*CppCheck) Run(results []stage.ExecutorResult, confAny any) (
return nil, true, err
}
var res []stage.ParserResult
forceQuit := false
for _, result := range results {
res = append(res, Parse(result, *conf))
parseRes := Parse(result, *conf)
if conf.ForceQuitOnDeduct && parseRes.Score < conf.Score {
forceQuit = true
}
res = append(res, parseRes)
}
return res, false, nil
return res, forceQuit, nil
}

View File

@ -15,10 +15,11 @@ type Match struct {
}
type Conf struct {
Score int
Matches []Match
Stdout string `default:"stdout"`
Stderr string `default:"stderr"`
Score int
Matches []Match
Stdout string `default:"stdout"`
Stderr string `default:"stderr"`
ForceQuitOnDeduct bool `default:"false"`
}
type Cpplint struct{}
@ -88,8 +89,13 @@ func (*Cpplint) Run(results []stage.ExecutorResult, confAny any) (
return nil, true, err
}
var res []stage.ParserResult
forceQuit := false
for _, result := range results {
res = append(res, Parse(result, *conf))
parseRes := Parse(result, *conf)
if conf.ForceQuitOnDeduct && parseRes.Score < conf.Score {
forceQuit = true
}
res = append(res, parseRes)
}
return res, false, nil
return res, forceQuit, nil
}