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: 38 inserted, 19 deleted

@@ -55,21 +55,37
55 55 result_fname = "#{test_result_dir}/result"
56 56 comment_fname = "#{test_result_dir}/comment"
57 57 if FileTest.exist?(result_fname)
58 - result_file = File.open(result_fname)
59 - result = result_file.readline.to_i
60 - result_file.close
61 -
62 - comment_file = File.open(comment_fname)
63 - comment = comment_file.readline.chomp
64 - comment_file.close
65 -
58 + comment = ""
59 + begin
60 + result_file = File.open(result_fname)
61 + result = result_file.readline.to_i
62 + result_file.close
63 + rescue
64 + result = 0
65 + comment = "error reading result file."
66 + end
67 +
68 + begin
69 + comment_file = File.open(comment_fname)
70 + comment += comment_file.readline.chomp
71 + comment_file.close
72 + rescue
73 + comment += ""
74 + end
75 +
66 76 return {:points => result,
67 77 :comment => comment,
68 78 :cmp_msg => cmp_msg}
69 79 else
70 - return {:points => 0,
71 - :comment => 'compile error',
72 - :cmp_msg => cmp_msg}
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
85 + return {:points => 0,
86 + :comment => 'compile error',
87 + :cmp_msg => cmp_msg}
88 + end
73 89 end
74 90 end
75 91
@@ -45,16 +45,17
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)
51 + else
52 + result_file = File.new(result_file_name, "r")
53 + result_file_lines = result_file.readlines
54 + run_score = run_score + result_file_lines[1].to_i
55 + run_comment += result_file_lines[0]
56 + run_comment_short += char_comment(result_file_lines[0])
57 + result_file.close
50 58 end
51 -
52 - result_file = File.new(result_file_name, "r")
53 - result_file_lines = result_file.readlines
54 - run_score = run_score + result_file_lines[1].to_i
55 - run_comment += result_file_lines[0]
56 - run_comment_short += char_comment(result_file_lines[0])
57 - result_file.close
58 59 end
59 60
60 61 run_result_file = File.new("result-#{k}", "w")
@@ -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