Paul Pan
d42ee0ce54
1. merge woj-runner scripts into woj-server 2. add woj-runner app 3. refactor submission status problem ... 4. jwt middleware update Co-authored-by: cxy004 <cxy004@qq.com> Co-authored-by: wzt <w.zhongtao@qq.com>
23 lines
666 B
Go
23 lines
666 B
Go
package runner
|
|
|
|
import "github.com/WHUPRJ/woj-server/internal/e"
|
|
|
|
func (s *service) RunAndJudge(version uint, user string, lang string, config *Config) (JudgeStatus, int32, e.Status) {
|
|
// run user program
|
|
status := s.checkAndExecute(version, user, lang, "problem_run.sh", e.RunnerRunFailed)
|
|
if status != e.Success {
|
|
return JudgeStatus{Message: "run failed"}, 0, status
|
|
}
|
|
|
|
// run judger
|
|
status = s.checkAndExecute(version, user, lang, "problem_judge.sh", e.RunnerJudgeFailed)
|
|
if status != e.Success {
|
|
return JudgeStatus{Message: "judge failed"}, 0, status
|
|
}
|
|
|
|
// check result
|
|
result, pts := s.checkResults(user, config)
|
|
|
|
return result, pts, e.Success
|
|
}
|