@@ -0,0 +1,31 @@ | |||||
require 'timeout' | |||||
module KGrader | |||||
module Runtime | |||||
MAX_COLS = 79 | |||||
def testcase(options) | |||||
puts " running test: #{$0} ".center MAX_COLS, '=' | |||||
begin | |||||
Timeout::timeout options[:alarm] { yield } | |||||
rescue Timeout::Error | |||||
comment "timeout" | |||||
grade 0 | |||||
end | |||||
puts " done ".center MAX_COLS, '-' | |||||
end | |||||
def grade(score) | |||||
IO.new(3).write score | |||||
exit | |||||
end | |||||
def comment(text) | |||||
IO.new(4).write text + "\n" | |||||
end | |||||
def shake | |||||
ARGV[0] | |||||
end | |||||
end | |||||
end |