Browse Source

Safer runtime error handling.

master
Ben Kurtovic 8 years ago
parent
commit
86d3a534ce
2 changed files with 7 additions and 2 deletions
  1. +6
    -1
      lib/kgrader/runtime.rb
  2. +1
    -1
      spec/cs241h

+ 6
- 1
lib/kgrader/runtime.rb View File

@@ -7,17 +7,22 @@ module KGrader


def testcase(options) def testcase(options)
puts " running test: #{File.basename $0} ".center MAX_COLS, '=' puts " running test: #{File.basename $0} ".center MAX_COLS, '='

begin begin
Timeout::timeout options[:alarm] { yield } Timeout::timeout options[:alarm] { yield }
rescue Timeout::Error rescue Timeout::Error
comment "timeout" comment "timeout"
grade 0 grade 0
end end
puts " done ".center MAX_COLS, '-'

puts "no grade received?"
comment "autograde error (no grade reported); please contact staff"
grade 0
end end


def grade(score) def grade(score)
IO.new(3).write score IO.new(3).write score
puts " done ".center MAX_COLS, '-'
exit exit
end end




+ 1
- 1
spec/cs241h

@@ -1 +1 @@
Subproject commit 514bd96d25d797ceb17f166f508e3195afb795f1
Subproject commit 22fd6cb688fcce712b4b68235533b59753aeaed7

Loading…
Cancel
Save