go-judge/pkg/envexec/run_status.go
criyle 7951f37bd4 Implements the draft executor server
- Add new command executorserver as the draft executor server
- Move shared pool logic into /pkg/pool
2020-03-04 02:12:26 -05:00

57 lines
1.2 KiB
Go

package envexec
// Status defines run task Status return status
type Status int
// Defines run task Status result status
const (
// not initialized status (as error)
StatusInvalid Status = iota
// exit normally
StatusAccepted
StatusWrongAnswer
StatusPartiallyCorrect
// exit with error
StatusMemoryLimitExceeded // MLE
StatusTimeLimitExceeded // TLE
StatusOutputLimitExceeded // OLE
StatusFileError // FE
StatusRuntimeError // RE
StatusDangerousSyscall // DJS
// SPJ / interactor error
StatusJudgementFailed
StatusInvalidInteraction // interactor signals error
// internal error including: cgroup init failed, container failed, etc
StatusInternalError
)
var statusToString = []string{
"Invalid",
"Accepted",
"Wrong Answer",
"Partially Correct",
"Memory Limit Exceeded",
"Time Limit Exceeded",
"Output Limit Exceeded",
"File Error",
"Runtime Error",
"Dangerous Syscall",
"Judgement Failed",
"Invalid Interaction",
"Internal Error",
"CGroup Error",
"Container Error",
}
func (s Status) String() string {
si := int(s)
if si < 0 || si >= len(statusToString) {
return statusToString[0] // invalid
}
return statusToString[si]
}