Documentation ¶
Index ¶
Constants ¶
View Source
const ( ACCEPTED = 0 + iota WRONG_ANSWER CPU_TIME_LIMIT_EXCEEDED REAL_TIME_LIMIT_EXCEEDED MEMORY_LIMIT_EXCEEDED RUNTIME_ERROR SYSTEM_ERROR )
Variables ¶
View Source
var ( ErrTypeAssertionFail = errors.New("type assertion failed") ErrMarshalJson = errors.New("json marshal error") ErrValidate = errors.New("validation error") ErrSandbox = errors.New("sandbox error") ErrTestcaseGet = errors.New("testcase get error") ErrCompile = errors.New("compile error") ErrWrongAnswer = errors.New("wrong answer") ErrCpuTimeLimitExceed = errors.New("cputime limit exceeded") ErrRealTimeLimitExceed = errors.New("realtime limit exceeded") ErrMemoryLimitExceed = errors.New("memory limit exceeded") ErrRuntime = errors.New("runtime error") )
Functions ¶
func ParseFirstError ¶
func ParseFirstError(j []JudgeResult) error
Types ¶
type Handler ¶
type Handler interface {
Handle(data interface{}) (json.RawMessage, error)
}
type HandlerError ¶
type HandlerError struct { Message string `json:"data"` // contains filtered or unexported fields }
func (*HandlerError) Error ¶
func (h *HandlerError) Error() string
func (*HandlerError) Level ¶
func (h *HandlerError) Level() logger.Level
func (*HandlerError) Unwrap ¶
func (h *HandlerError) Unwrap() error
func (*HandlerError) Wrap ¶
func (h *HandlerError) Wrap(err error) *HandlerError
type JudgeHandler ¶
type JudgeHandler struct {
// contains filtered or unexported fields
}
func NewJudgeHandler ¶
func NewJudgeHandler( compiler sandbox.Compiler, runner sandbox.Runner, testcaseManager testcase.TestcaseManager, langConfig sandbox.LangConfig, file file.FileManager, logger logger.Logger, ) *JudgeHandler
func (*JudgeHandler) Handle ¶
func (j *JudgeHandler) Handle(id string, data []byte) (json.RawMessage, error)
handle top layer logical flow
type JudgeResult ¶
type JudgeResult struct { TestcaseId string `json:"testcaseId"` ResultCode JudgeResultCode `json:"resultCode"` CpuTime int `json:"cpuTime"` RealTime int `json:"realTime"` Memory int `json:"memory"` Signal int `json:"signal"` ExitCode int `json:"exitCode"` ErrorCode int `json:"errorCode"` Error string `json:"error"` }
type JudgeResultCode ¶
type JudgeResultCode int8
JudgeResult ResultCode
func SandboxResultCodeToJudgeResultCode ¶
func SandboxResultCodeToJudgeResultCode(code sandbox.ResultCode) JudgeResultCode
FIXME: use more proper name FIXME: refactor
type Request ¶
type Result ¶
type Result struct { TotalTestcase int `json:"totalTestcase"` AcceptedNum int `json:"acceptedNum"` JudgeResult []JudgeResult `json:"judgeResult"` }
func (*Result) SetJudgeResult ¶
func (r *Result) SetJudgeResult(idx int, testcaseId string, execResult sandbox.ExecResult)
func (*Result) SetJudgeResultCode ¶
func (r *Result) SetJudgeResultCode(idx int, code JudgeResultCode)
Click to show internal directories.
Click to hide internal directories.