fix: add comment on wrong result status
All checks were successful
build / build (push) Successful in 1m17s
build / trigger-build-image (push) Successful in 5s

This commit is contained in:
张泊明518370910136 2024-10-01 05:04:07 -04:00
parent 18b7193bc0
commit 914ad6c7e3
GPG Key ID: D47306D7062CDA9D

View File

@ -57,37 +57,36 @@ func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
comment += fmt.Sprintf( comment += fmt.Sprintf(
"Unexpected executor status: %s.", result.Status, "Unexpected executor status: %s.", result.Status,
) )
continue } else {
} 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 { return nil, true, err
return nil, true, err }
} slog.Debug("compare", "filename", output.FileName,
slog.Debug("compare", "filename", output.FileName, "answer path", output.AnswerPath,
"answer path", output.AnswerPath, "actual", result.Files[output.FileName],
"actual", result.Files[output.FileName], "answer", string(answer))
"answer", string(answer)) // If no difference, assign score
// If no difference, assign score if compareChars(string(answer), result.Files[output.FileName], output.IgnoreWhitespace) {
if compareChars(string(answer), result.Files[output.FileName], output.IgnoreWhitespace) { score += output.Score
score += output.Score } else {
} else { // Convert answer to string and split by lines
// Convert answer to string and split by lines stdoutLines := strings.Split(string(answer), "\n")
stdoutLines := strings.Split(string(answer), "\n") resultLines := strings.Split(result.Files[output.FileName], "\n")
resultLines := strings.Split(result.Files[output.FileName], "\n")
// Generate Myers diff // Generate Myers diff
diffOps := myersDiff(stdoutLines, resultLines) diffOps := myersDiff(stdoutLines, resultLines)
// Generate diff block with surrounding context // Generate diff block with surrounding context
diffOutput := generateDiffWithContext(stdoutLines, resultLines, diffOps) diffOutput := generateDiffWithContext(stdoutLines, resultLines, diffOps)
comment += fmt.Sprintf( comment += fmt.Sprintf(
"difference found in %s:\n```diff\n%s```\n", "difference found in %s:\n```diff\n%s```\n",
output.FileName, diffOutput, output.FileName, diffOutput,
) )
}
} }
} }
res = append(res, stage.ParserResult{ res = append(res, stage.ParserResult{
Score: score, Score: score,
Comment: comment, Comment: comment,