Description:
[grader] report error when the check script crashed (i.e., when the result file is not found, while the compilation is okay) git-svn-id: http://theory.cpe.ku.ac.th/grader/judge/trunk/scripts@117 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r30:8c0d78da1958 - - 4 files changed: 23 inserted, 4 deleted

@@ -55,23 +55,39
55 55 result_fname = "#{test_result_dir}/result"
56 56 comment_fname = "#{test_result_dir}/comment"
57 57 if FileTest.exist?(result_fname)
58 + comment = ""
59 + begin
58 60 result_file = File.open(result_fname)
59 61 result = result_file.readline.to_i
60 62 result_file.close
63 + rescue
64 + result = 0
65 + comment = "error reading result file."
66 + end
61 67
68 + begin
62 69 comment_file = File.open(comment_fname)
63 - comment = comment_file.readline.chomp
70 + comment += comment_file.readline.chomp
64 71 comment_file.close
72 + rescue
73 + comment += ""
74 + end
65 75
66 76 return {:points => result,
67 77 :comment => comment,
68 78 :cmp_msg => cmp_msg}
69 79 else
80 + if FileTest.exist?("#{test_result_dir}/a.out")
81 + return {:points => 0,
82 + :comment => 'error during grading',
83 + :cmp_msg => cmp_msg}
84 + else
70 85 return {:points => 0,
71 86 :comment => 'compile error',
72 87 :cmp_msg => cmp_msg}
73 88 end
74 89 end
90 + end
75 91
76 92 def save_result(submission,result)
77 93 problem = submission.problem
@@ -45,10 +45,10
45 45 run.tests.each do |test_num|
46 46 result_file_name = "#{test_num}/result"
47 47 if not File.exists?(result_file_name)
48 + run_comment += "result file for test #{test_num} not found\n"
49 + run_comment_short += 'x'
48 50 log "Cannot find the file #{test_num}/result!"
49 - exit(127)
50 - end
51 -
51 + else
52 52 result_file = File.new(result_file_name, "r")
53 53 result_file_lines = result_file.readlines
54 54 run_score = run_score + result_file_lines[1].to_i
@@ -56,6 +56,7
56 56 run_comment_short += char_comment(result_file_lines[0])
57 57 result_file.close
58 58 end
59 + end
59 60
60 61 run_result_file = File.new("result-#{k}", "w")
61 62 run_result_file.write run_score
@@ -16,6 +16,7
16 16
17 17 def execute(command, error_message="")
18 18 if not system(command)
19 + log "ERROR: #{error_message}"
19 20 puts "ERROR: #{error_message}"
20 21 exit(127)
21 22 end
@@ -132,6 +132,7
132 132 log "Checking the output..."
133 133 log check_command
134 134 if not system(check_command)
135 + log "Problem with check script"
135 136 exit(127)
136 137 end
137 138
You need to be logged in to leave comments. Login now