Description:
fix various bugs, save output, save comment git-svn-id: http://theory.cpe.ku.ac.th/grader/cli/trunk/scripts@21 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

r8:4a121cdd0baf - - 3 files changed: 6 inserted, 7 deleted

@@ -19,51 +19,49
19 19
20 20 if problem.well_formed? == false
21 21 puts "The problem specification is not well formed."
22 22 exit(127)
23 23 end
24 24
25 25 all_score = 0
26 26 all_comment = ''
27 27 (1..(problem.runs.length-1)).each do |k|
28 28 run = problem.runs[k]
29 29 run_score = 0
30 30 run_comment = ''
31 + run_comment_short = ''
31 32 run.tests.each do |test_num|
32 33 result_file_name = "#{test_num}/result"
33 34 if not File.exists?(result_file_name)
34 35 puts "Cannot find the file #{test_num}/result!"
35 36 exit(127)
36 37 end
37 38
38 39 result_file = File.new(result_file_name, "r")
39 40 result_file_lines = result_file.readlines
40 41 run_score = run_score + result_file_lines[1].to_i
41 - # run_comment += char_comment(result_file_lines[0])
42 - result_file_lines.each do |l|
43 - run_comment += l
44 - end
45 - run_comment += "----\n"
42 + run_comment += result_file_lines[0]
43 + run_comment_short += char_comment(result_file_lines[0])
46 44 result_file.close
47 45 end
48 46
49 47 run_result_file = File.new("result-#{k}", "w")
50 48 run_result_file.write run_score
51 49 run_result_file.write "\n"
52 50 run_result_file.close
53 51
54 52 run_comment_file = File.new("comment-#{k}", "w")
55 53 run_comment_file.write "#{run_comment}\n"
56 54 run_comment_file.close
57 55
58 56 all_score = all_score + run_score
59 - all_comment += run_comment
57 + all_comment += run_comment_short
60 58 end
61 59
62 60 result_file = File.new("result", "w")
63 61 result_file.write all_score
64 62 result_file.write "\n"
65 63 result_file.close
66 64
67 65 comment_file = File.new("comment", "w")
68 66 comment_file.write "#{all_comment}\n"
69 67 comment_file.close
@@ -87,24 +87,25
87 87 puts "The problem specification is not well formed."
88 88 exit(127)
89 89 end
90 90
91 91 # Doing the testing.
92 92 (1..(problem.num_tests)).each do |test_num|
93 93 puts
94 94 execute("cp #{test_result_dir}/a.out #{sandbox_dir}", "Cannot copy the compiled program into #{sandbox_dir}")
95 95 execute("#{problem_home}/script/run #{language} #{test_num}", "Error occured during execution of the run script")
96 96 execute("mkdir #{test_result_dir}/#{test_num}", "Cannot create directory #{test_result_dir}/#{test_num}")
97 97 execute("mv #{sandbox_dir}/result #{test_result_dir}/#{test_num}", "Cannot copy the result file into #{test_result_dir}/#{test_num}")
98 98 execute("mv #{sandbox_dir}/comment #{test_result_dir}/#{test_num}", "Cannot copy the comment file into #{test_result_dir}/#{test_num}")
99 + execute("mv #{sandbox_dir}/output.txt #{test_result_dir}/#{test_num}", "Cannot copy the output file into #{test_result_dir}/#{test_num}")
99 100 execute("rm -Rf #{sandbox_dir}/*", "Cannot clear #{sandbox_dir}")
100 101 end
101 102
102 103 # Grade
103 104 puts
104 105 puts "Grading..."
105 106 begin
106 107 Dir.chdir test_result_dir
107 108 rescue
108 109 puts "ERROR: Cannot change directory to #{test_result_dir}."
109 110 exit(127)
110 111 end
@@ -60,25 +60,25
60 60 run_result_file.close
61 61 time_elapsed = run_result[run_result.length-1]
62 62
63 63 report = lambda{ |status, points, comment|
64 64 result_file.write status.strip
65 65 result_file.write "\n"
66 66 result_file.write points.to_s.strip
67 67 result_file.write "\n"
68 68 result_file.write time_elapsed.strip
69 69 result_file.write "\n"
70 70 result_file.close
71 71 `rm run_result`
72 - `rm output.txt`
72 + # `rm output.txt` --- keep the output
73 73
74 74 comment_file.write comment
75 75 comment_file.write "--run-result--\n"
76 76 run_result.each do |l|
77 77 comment_file.write l
78 78 end
79 79 comment_file.close
80 80
81 81 puts
82 82 puts "Done!"
83 83 exit(0)
84 84 }
You need to be logged in to leave comments. Login now