Show More
Commit Description:
use datatable
Commit Description:
use datatable
References:
File last commit:
Show/Diff file:
Action:
lib/grader_script.rb
| 73 lines
| 1.8 KiB
| text/x-ruby
| RubyLexer
|
|
r203 | module GraderScript | ||
def self.grader_control_enabled? | ||||
|
r204 | if defined? GRADER_ROOT_DIR | ||
GRADER_ROOT_DIR != '' | ||||
|
r203 | else | ||
false | ||||
end | ||||
end | ||||
|
r204 | def self.raw_dir | ||
File.join GRADER_ROOT_DIR, "raw" | ||||
end | ||||
def self.call_grader(params) | ||||
|
r203 | if GraderScript.grader_control_enabled? | ||
|
r204 | cmd = File.join(GRADER_ROOT_DIR, "scripts/grader") + " " + params | ||
|
r203 | system(cmd) | ||
end | ||||
end | ||||
|
r204 | def self.stop_grader(pid) | ||
GraderScript.call_grader "stop #{pid}" | ||||
end | ||||
|
r203 | def self.stop_graders(pids) | ||
|
r335 | pid_str = (pids.map { |process| process.pid.to_s }).join ' ' | ||
|
r204 | GraderScript.call_grader "stop #{pid_str}" | ||
|
r203 | end | ||
def self.start_grader(env) | ||||
r460 | GraderScript.call_grader "#{env} queue --err-log &" | |||
GraderScript.call_grader "#{env} test_request -err-log &" | ||||
|
r204 | end | ||
def self.call_import_problem(problem_name, | ||||
problem_dir, | ||||
time_limit=1, | ||||
memory_limit=32, | ||||
checker_name='text') | ||||
|
r203 | if GraderScript.grader_control_enabled? | ||
|
r204 | cur_dir = `pwd`.chomp | ||
Dir.chdir(GRADER_ROOT_DIR) | ||||
script_name = File.join(GRADER_ROOT_DIR, "scripts/import_problem") | ||||
cmd = "#{script_name} #{problem_name} #{problem_dir} #{checker_name}" + | ||||
" -t #{time_limit} -m #{memory_limit}" | ||||
output = `#{cmd}` | ||||
Dir.chdir(cur_dir) | ||||
r625 | ||||
r402 | return "import CMD: #{cmd}\n" + output | |||
|
r204 | end | ||
return '' | ||||
|
r203 | end | ||
r625 | def self.call_import_testcase(problem_name) | |||
if GraderScript.grader_control_enabled? | ||||
cur_dir = `pwd`.chomp | ||||
Dir.chdir(GRADER_ROOT_DIR) | ||||
script_name = File.join(GRADER_ROOT_DIR, "scripts/load_testcase") | ||||
cmd = "#{script_name} #{problem_name}" | ||||
output = `#{cmd}` | ||||
Dir.chdir(cur_dir) | ||||
return "Testcase import result:\n" + output | ||||
end | ||||
end | ||||
|
r203 | end | ||