| @@ -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 | |||||