Description:
fixed dry option bug in contest mode
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r95:8569b91a13b7 - - 1 file changed: 1 inserted, 1 deleted

@@ -232,97 +232,97
232 break
232 break
233 end
233 end
234
234
235 if grader_mode=="queue"
235 if grader_mode=="queue"
236 task = runner.grade_oldest_task
236 task = runner.grade_oldest_task
237 else
237 else
238 task = runner.grade_oldest_test_request
238 task = runner.grade_oldest_test_request
239 end
239 end
240 if task==nil
240 if task==nil
241 sleep(1)
241 sleep(1)
242 end
242 end
243 end
243 end
244
244
245 when "prob"
245 when "prob"
246 if options[:report]
246 if options[:report]
247 result_collector = ResultCollector.new
247 result_collector = ResultCollector.new
248 else
248 else
249 result_collector = nil
249 result_collector = nil
250 end
250 end
251
251
252 if options[:dry_run]
252 if options[:dry_run]
253 puts "Running in dry mode"
253 puts "Running in dry mode"
254 end
254 end
255
255
256 prob_reporter = Grader::SubmissionReporter.new(:dry_run => dry_run,
256 prob_reporter = Grader::SubmissionReporter.new(:dry_run => dry_run,
257 :result_collector => result_collector)
257 :result_collector => result_collector)
258 engine = Grader::Engine.new(:reporter => prob_reporter)
258 engine = Grader::Engine.new(:reporter => prob_reporter)
259 runner = Grader::Runner.new(engine, grader_proc)
259 runner = Grader::Runner.new(engine, grader_proc)
260
260
261 grader_proc.report_active if grader_proc!=nil
261 grader_proc.report_active if grader_proc!=nil
262
262
263 ARGV.each do |prob_name|
263 ARGV.each do |prob_name|
264 prob = Problem.find_by_name(prob_name)
264 prob = Problem.find_by_name(prob_name)
265 if prob==nil
265 if prob==nil
266 puts "cannot find problem: #{prob_name}"
266 puts "cannot find problem: #{prob_name}"
267 else
267 else
268 runner.grade_problem(prob)
268 runner.grade_problem(prob)
269 end
269 end
270 end
270 end
271
271
272 if options[:report]
272 if options[:report]
273 result_collector.print_report_by_user
273 result_collector.print_report_by_user
274 end
274 end
275
275
276 when "contest"
276 when "contest"
277 # always use dry run when grading during contest
277 # always use dry run when grading during contest
278 contest_name = ARGV.shift
278 contest_name = ARGV.shift
279
279
280 - options[:dry_run] = true
280 + dry_run = options[:dry_run] = true
281
281
282 contest = Contest.find_by_name(contest_name)
282 contest = Contest.find_by_name(contest_name)
283 if contest==nil
283 if contest==nil
284 puts "cannot find contest: #{contest_name}"
284 puts "cannot find contest: #{contest_name}"
285 exit(0)
285 exit(0)
286 end
286 end
287
287
288 if options[:report]
288 if options[:report]
289 result_collector = ResultCollector.new
289 result_collector = ResultCollector.new
290 else
290 else
291 result_collector = nil
291 result_collector = nil
292 end
292 end
293
293
294 if options[:dry_run]
294 if options[:dry_run]
295 puts "Running in dry mode"
295 puts "Running in dry mode"
296 end
296 end
297
297
298 prob_reporter = Grader::SubmissionReporter.new(:dry_run => dry_run,
298 prob_reporter = Grader::SubmissionReporter.new(:dry_run => dry_run,
299 :result_collector => result_collector)
299 :result_collector => result_collector)
300 engine = Grader::Engine.new(:reporter => prob_reporter)
300 engine = Grader::Engine.new(:reporter => prob_reporter)
301 runner = Grader::Runner.new(engine, grader_proc)
301 runner = Grader::Runner.new(engine, grader_proc)
302
302
303 grader_proc.report_active if grader_proc!=nil
303 grader_proc.report_active if grader_proc!=nil
304
304
305 contest.problems.each do |problem|
305 contest.problems.each do |problem|
306 puts "Grading: #{problem.name}"
306 puts "Grading: #{problem.name}"
307 runner.grade_problem(problem,
307 runner.grade_problem(problem,
308 :user_conditions => lambda do |u|
308 :user_conditions => lambda do |u|
309 u.contest_finished? and
309 u.contest_finished? and
310 u.contest_ids.include?(contest.id)
310 u.contest_ids.include?(contest.id)
311 end)
311 end)
312 end
312 end
313
313
314 if options[:report]
314 if options[:report]
315 result_collector.print_report_by_user
315 result_collector.print_report_by_user
316 end
316 end
317
317
318 when "sub"
318 when "sub"
319 engine = Grader::Engine.new
319 engine = Grader::Engine.new
320 runner = Grader::Runner.new(engine, grader_proc)
320 runner = Grader::Runner.new(engine, grader_proc)
321
321
322 grader_proc.report_active if grader_proc!=nil
322 grader_proc.report_active if grader_proc!=nil
323
323
324 ARGV.each do |sub_id|
324 ARGV.each do |sub_id|
325 puts "Grading #{sub_id}"
325 puts "Grading #{sub_id}"
326 begin
326 begin
327 submission = Submission.find(sub_id.to_i)
327 submission = Submission.find(sub_id.to_i)
328 rescue ActiveRecord::RecordNotFound
328 rescue ActiveRecord::RecordNotFound
You need to be logged in to leave comments. Login now