Description:
Merge pull request #1 from jittat/master
Merge from origin
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r196:4097795ac013 - - 3 files changed: 33 inserted, 31 deleted
@@ -358,7 +358,7 | |||||
|
358 | begin |
|
358 | begin |
|
359 | submission = Submission.find(sub_id.to_i) |
|
359 | submission = Submission.find(sub_id.to_i) |
|
360 | rescue ActiveRecord::RecordNotFound |
|
360 | rescue ActiveRecord::RecordNotFound |
|
361 |
- puts " |
|
361 | + puts "Submission #{sub_id} not found" |
|
362 | submission = nil |
|
362 | submission = nil |
|
363 | end |
|
363 | end |
|
364 |
|
364 |
@@ -36,35 +36,35 | |||||
|
36 | user = submission.user |
|
36 | user = submission.user |
|
37 | problem = submission.problem |
|
37 | problem = submission.problem |
|
38 |
|
38 | ||
|
39 | - # TODO: will have to create real exception for this |
|
39 | + begin |
|
40 | - if user==nil or problem == nil |
|
40 | + # TODO: will have to create real exception for this |
|
41 | - @reporter.report_error(submission,"Grading error: problem with submission") |
|
41 | + if user==nil or problem == nil |
|
42 | - #raise "engine: user or problem is nil" |
|
42 | + @reporter.report_error(submission,"Grading error: problem with submission") |
|
43 | - end |
|
43 | + raise "engine: user or problem is nil" |
|
44 | - |
|
44 | + end |
|
45 | - # TODO: this is another hack so that output only task can be judged |
|
||
|
46 | - if submission.language!=nil |
|
||
|
47 | - language = submission.language.name |
|
||
|
48 | - lang_ext = submission.language.ext |
|
||
|
49 | - else |
|
||
|
50 | - language = 'c' |
|
||
|
51 | - lang_ext = 'c' |
|
||
|
52 | - end |
|
||
|
53 |
|
45 | ||
|
54 | - # This is needed because older version of std-scripts/compile |
|
46 | + # TODO: this is another hack so that output only task can be judged |
|
55 | - # only look for c++. |
|
47 | + if submission.language!=nil |
|
56 | - if language == 'cpp' |
|
48 | + language = submission.language.name |
|
57 | - language = 'c++' |
|
49 | + lang_ext = submission.language.ext |
|
58 |
- |
|
50 | + else |
|
|
51 | + language = 'c' | ||
|
|
52 | + lang_ext = 'c' | ||
|
|
53 | + end | ||
|
59 |
|
54 | ||
|
60 | - # COMMENT: should it be only source.ext? |
|
55 | + # This is needed because older version of std-scripts/compile |
|
61 | - if problem!=nil |
|
56 | + # only look for c++. |
|
62 | - source_name = "#{problem.name}.#{lang_ext}" |
|
57 | + if language == 'cpp' |
|
63 | - else |
|
58 | + language = 'c++' |
|
64 | - source_name = "source.#{lang_ext}" |
|
59 | + end |
|
65 | - end |
|
||
|
66 |
|
60 | ||
|
67 | - begin |
|
61 | + # COMMENT: should it be only source.ext? |
|
|
62 | + if problem!=nil | ||
|
|
63 | + source_name = "#{problem.name}.#{lang_ext}" | ||
|
|
64 | + else | ||
|
|
65 | + source_name = "source.#{lang_ext}" | ||
|
|
66 | + end | ||
|
|
67 | + | ||
|
68 | grading_dir = @room_maker.produce_grading_room(submission) |
|
68 | grading_dir = @room_maker.produce_grading_room(submission) |
|
69 | @room_maker.save_source(submission,source_name) |
|
69 | @room_maker.save_source(submission,source_name) |
|
70 | problem_home = @room_maker.find_problem_home(submission) |
|
70 | problem_home = @room_maker.find_problem_home(submission) |
@@ -73,7 +73,8 | |||||
|
73 | # puts "PROBLEM DIR: #{problem_home}" |
|
73 | # puts "PROBLEM DIR: #{problem_home}" |
|
74 |
|
74 | ||
|
75 | if !FileTest.exist?(problem_home) |
|
75 | if !FileTest.exist?(problem_home) |
|
76 | - raise "No test data." |
|
76 | + puts "PROBLEM DIR: #{problem_home}" |
|
|
77 | + raise "engine: No test data." | ||
|
77 | end |
|
78 | end |
|
78 |
|
79 | ||
|
79 | dinit = DirInit::Manager.new(problem_home) |
|
80 | dinit = DirInit::Manager.new(problem_home) |
@@ -95,6 +96,7 | |||||
|
95 |
|
96 | ||
|
96 | rescue RuntimeError => msg |
|
97 | rescue RuntimeError => msg |
|
97 | @reporter.report_error(submission, msg) |
|
98 | @reporter.report_error(submission, msg) |
|
|
99 | + puts "ERROR: #{msg}" | ||
|
98 |
|
100 | ||
|
99 | ensure |
|
101 | ensure |
|
100 | @room_maker.clean_up(submission) |
|
102 | @room_maker.clean_up(submission) |
@@ -129,7 +131,7 | |||||
|
129 | script_dir = "#{problem_home}/script" |
|
131 | script_dir = "#{problem_home}/script" |
|
130 | std_script_dir = get_std_script_dir |
|
132 | std_script_dir = get_std_script_dir |
|
131 |
|
133 | ||
|
132 | - raise "std-script directory not found" if !FileTest.exist?(std_script_dir) |
|
134 | + raise "engine: std-script directory not found" if !FileTest.exist?(std_script_dir) |
|
133 |
|
135 | ||
|
134 | scripts = Dir[std_script_dir + '/*'] |
|
136 | scripts = Dir[std_script_dir + '/*'] |
|
135 |
|
137 |
@@ -11,14 +11,14 | |||||
|
11 | # |
|
11 | # |
|
12 | ############################## |
|
12 | ############################## |
|
13 |
|
13 | ||
|
14 |
- def talk( |
|
14 | + def talk(str='') |
|
15 | if ENV['TALKATIVE']!=nil |
|
15 | if ENV['TALKATIVE']!=nil |
|
16 | puts str |
|
16 | puts str |
|
17 | end |
|
17 | end |
|
18 | if ENV['GRADER_LOGGING']!=nil |
|
18 | if ENV['GRADER_LOGGING']!=nil |
|
19 | log_fname = ENV['GRADER_LOGGING'] |
|
19 | log_fname = ENV['GRADER_LOGGING'] |
|
20 | fp = File.open(log_fname,"a") |
|
20 | fp = File.open(log_fname,"a") |
|
21 |
- fp.puts("run: #{Time.new.strftime("%H:%M")} #{ |
|
21 | + fp.puts("run: #{Time.new.strftime("%H:%M")} #{str}") |
|
22 | fp.close |
|
22 | fp.close |
|
23 | end |
|
23 | end |
|
24 | end |
|
24 | end |
You need to be logged in to leave comments.
Login now