NewSession 创建会话对象
(configFile string)
| 58 | |
| 59 | // NewSession 创建会话对象 |
| 60 | func NewSession(configFile string) (*JudgeSession, error) { |
| 61 | session := JudgeSession{} |
| 62 | session.Logger = logger.NewJudgeLogger() |
| 63 | session.Timeout = 30 // 默认30秒超时 |
| 64 | session.SessionRoot = "/tmp" |
| 65 | session.CodeLangName = "auto" |
| 66 | session.JudgeConfig.UID = -1 |
| 67 | session.JudgeConfig.TimeLimit = 1000 |
| 68 | session.JudgeConfig.MemoryLimit = 65535 |
| 69 | session.JudgeConfig.StrictMode = true |
| 70 | session.JudgeConfig.FileSizeLimit = 50 * 1024 * 1024 |
| 71 | session.JudgeConfig.SpecialJudge.Mode = 0 |
| 72 | session.JudgeConfig.SpecialJudge.RedirectProgramOut = true |
| 73 | session.JudgeConfig.SpecialJudge.TimeLimit = 1000 |
| 74 | session.JudgeConfig.SpecialJudge.MemoryLimit = 65535 |
| 75 | if configFile != "" { |
| 76 | configFileAbsPath, err := filepath.Abs(configFile) |
| 77 | if err != nil { |
| 78 | return nil, err |
| 79 | } |
| 80 | session.ConfigFile = configFileAbsPath |
| 81 | session.ConfigDir = path.Dir(configFileAbsPath) |
| 82 | session.JudgeConfig.ConfigDir = session.ConfigDir |
| 83 | cbody, err := ioutil.ReadFile(configFileAbsPath) |
| 84 | if err != nil { |
| 85 | return nil, err |
| 86 | } |
| 87 | err = json.Unmarshal(cbody, &session.JudgeConfig) |
| 88 | if err != nil { |
| 89 | return nil, err |
| 90 | } |
| 91 | } |
| 92 | return &session, nil |
| 93 | } |
| 94 | |
| 95 | // NewSessionWithLog 创建一个包含日志的对象 |
| 96 | func NewSessionWithLog(configFile string, print bool, level int) (*JudgeSession, error) { |
no test coverage detected