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