Description:
closes result file in test request
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r112:fbae5192da4e - - 1 file changed: 4 inserted, 1 deleted

@@ -137,49 +137,52
137 save_result(test_request,read_result(test_result_dir))
137 save_result(test_request,read_result(test_result_dir))
138 end
138 end
139
139
140 def report_error(test_request, msg)
140 def report_error(test_request, msg)
141 save_result(test_request, {:running_stat => {
141 save_result(test_request, {:running_stat => {
142 :msg => "#{msg}",
142 :msg => "#{msg}",
143 :running_time => nil,
143 :running_time => nil,
144 :exit_status => "Some error occured. Program did not run",
144 :exit_status => "Some error occured. Program did not run",
145 :memory_usage => nil
145 :memory_usage => nil
146 }})
146 }})
147 end
147 end
148
148
149 protected
149 protected
150 def read_result(test_result_dir)
150 def read_result(test_result_dir)
151 # TODO:
151 # TODO:
152 cmp_msg_fname = "#{test_result_dir}/compiler_message"
152 cmp_msg_fname = "#{test_result_dir}/compiler_message"
153 cmp_file = File.open(cmp_msg_fname)
153 cmp_file = File.open(cmp_msg_fname)
154 cmp_msg = cmp_file.read
154 cmp_msg = cmp_file.read
155 cmp_file.close
155 cmp_file.close
156
156
157 result_file_name = "#{test_result_dir}/1/result"
157 result_file_name = "#{test_result_dir}/1/result"
158
158
159 if File.exists?(result_file_name)
159 if File.exists?(result_file_name)
160 output_file_name = "#{test_result_dir}/1/output.txt"
160 output_file_name = "#{test_result_dir}/1/output.txt"
161 - results = File.open("#{test_result_dir}/1/result").readlines
161 + results = []
162 + File.open("#{test_result_dir}/1/result") do |f|
163 + results = f.readlines
164 + end
162 stat = extract_running_stat(results)
165 stat = extract_running_stat(results)
163
166
164 return {
167 return {
165 :output_file_name => output_file_name,
168 :output_file_name => output_file_name,
166 :running_stat => stat,
169 :running_stat => stat,
167 :comment => "",
170 :comment => "",
168 :cmp_msg => cmp_msg}
171 :cmp_msg => cmp_msg}
169 else
172 else
170 return {
173 return {
171 :running_stat => nil,
174 :running_stat => nil,
172 :comment => "Compilation error",
175 :comment => "Compilation error",
173 :cmp_msg => cmp_msg}
176 :cmp_msg => cmp_msg}
174 end
177 end
175 end
178 end
176
179
177 def extract_running_stat(results)
180 def extract_running_stat(results)
178 running_stat_line = results[-1]
181 running_stat_line = results[-1]
179
182
180 # extract exit status line
183 # extract exit status line
181 run_stat = ""
184 run_stat = ""
182 if !(/[Cc]orrect/.match(results[0]))
185 if !(/[Cc]orrect/.match(results[0]))
183 run_stat = results[0].chomp
186 run_stat = results[0].chomp
184 else
187 else
185 run_stat = 'Program exited normally'
188 run_stat = 'Program exited normally'
You need to be logged in to leave comments. Login now