MCPcopy Create free account
hub / github.com/LanceLRQ/deer-executor / NewSession

Function NewSession

executor/structs.go:60–93  ·  view source on GitHub ↗

NewSession 创建会话对象

(configFile string)

Source from the content-addressed store, hash-verified

58
59// NewSession 创建会话对象
60func 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 创建一个包含日志的对象
96func NewSessionWithLog(configFile string, print bool, level int) (*JudgeSession, error) {

Callers 8

RunTestCaseGeneratorFunction · 0.92
BuildProblemPackageFunction · 0.92
RunTestlibValidatorsFunction · 0.92
RunCheckerCasesFunction · 0.92
makeProblmConfigFunction · 0.92
runJudgeFunction · 0.92
NewSessionWithLogFunction · 0.85

Calls 1

NewJudgeLoggerFunction · 0.92

Tested by

no test coverage detected