most 0.7.5 → 0.7.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/History.txt +3 -0
  2. data/Manifest.txt +21 -0
  3. data/Rakefile +1 -3
  4. data/lib/most/context.rb +4 -0
  5. data/lib/most/environment.rb +7 -2
  6. data/lib/most/executor.rb +5 -5
  7. data/lib/most/helpers/numeric.rb +5 -0
  8. data/lib/most/structures/box.rb +38 -1
  9. data/lib/most/structures/submission.rb +5 -1
  10. data/lib/most/structures/test_case.rb +9 -0
  11. data/lib/most/structures/test_runner.rb +13 -0
  12. data/lib/most/structures/types/report.rb +1 -1
  13. data/lib/most/submissions/borland_delphi_sample.rb +36 -0
  14. data/lib/most/submissions/brainf_sample.rb +32 -0
  15. data/lib/most/submissions/cpp_memory_out_sample.rb +2 -2
  16. data/lib/most/submissions/cpp_sample.rb +2 -2
  17. data/lib/most/submissions/cpp_timeout_sample.rb +2 -2
  18. data/lib/most/submissions/cs_sample.rb +3 -3
  19. data/lib/most/submissions/custom_delphi_sample.rb +119 -0
  20. data/lib/most/submissions/erlang_sample.rb +3 -3
  21. data/lib/most/submissions/haskell_sample.rb +3 -3
  22. data/lib/most/submissions/java_sample.rb +3 -3
  23. data/lib/most/submissions/lisp_sample.rb +3 -3
  24. data/lib/most/submissions/lua_sample.rb +3 -3
  25. data/lib/most/submissions/ocaml_sample.rb +3 -3
  26. data/lib/most/submissions/pascal_sample.rb +3 -3
  27. data/lib/most/submissions/perl_sample.rb +3 -3
  28. data/lib/most/submissions/php_sample.rb +3 -3
  29. data/lib/most/submissions/python_sample.rb +3 -3
  30. data/lib/most/submissions/ruby_sample.rb +3 -3
  31. data/lib/most/submissions/vb_sample.rb +3 -3
  32. data/lib/most/tasks/general/win/borland_delphi.rb +73 -0
  33. data/lib/most/tasks/general/win/brainf.rb +69 -0
  34. data/lib/most/tasks/general/win/run.rb +45 -0
  35. data/lib/most.rb +1 -1
  36. data/samples/custom/ones/check.dpr +15 -0
  37. data/samples/custom/ones/ones_is.dpr +23 -0
  38. data/samples/custom/ones/ones_rs.dpr +25 -0
  39. data/samples/custom/ones/problem.xml +21 -0
  40. data/samples/custom/ones/tests/clean.bat +5 -0
  41. data/samples/custom/ones/tests/make.bat +9 -0
  42. data/samples/custom/ones/tests/make_answers.bat +30 -0
  43. data/samples/custom/ones/tests/ones_rs.exe +0 -0
  44. data/samples/custom/ones/tests/shuffle.dpr +31 -0
  45. data/samples/custom/ones/tests/shuffle.exe +0 -0
  46. data/samples/custom/ones/tests/tests.lst +69 -0
  47. data/samples/problem/solutions/brainf/main.b +1 -0
  48. data/samples/problem/solutions/brainf/tests.yml +19 -0
  49. data/samples/problem/solutions/delphi/main.dpr +5 -0
  50. data/samples/problem/solutions/delphi/tests.yml +19 -0
  51. data/tasks/samples.rb +1 -1
  52. metadata +23 -22
data/History.txt CHANGED
@@ -1,3 +1,6 @@
1
+ == 0.7.5 2009-27-12
2
+ * Fixed dependencies problem on *nix
3
+
1
4
  == 0.7.4 2009-26-12
2
5
  * Now it is possible to load the Most library in order to get an ability to load serialized reports
3
6
  require 'most'
data/Manifest.txt CHANGED
@@ -31,10 +31,13 @@ lib/most/structures/test_runner.rb
31
31
  lib/most/structures/types/options.rb
32
32
  lib/most/structures/types/path.rb
33
33
  lib/most/structures/types/report.rb
34
+ lib/most/submissions/borland_delphi_sample.rb
35
+ lib/most/submissions/brainf_sample.rb
34
36
  lib/most/submissions/cpp_memory_out_sample.rb
35
37
  lib/most/submissions/cpp_sample.rb
36
38
  lib/most/submissions/cpp_timeout_sample.rb
37
39
  lib/most/submissions/cs_sample.rb
40
+ lib/most/submissions/custom_delphi_sample.rb
38
41
  lib/most/submissions/erlang_sample.rb
39
42
  lib/most/submissions/haskell_sample.rb
40
43
  lib/most/submissions/java_sample.rb
@@ -47,6 +50,8 @@ lib/most/submissions/php_sample.rb
47
50
  lib/most/submissions/python_sample.rb
48
51
  lib/most/submissions/ruby_sample.rb
49
52
  lib/most/submissions/vb_sample.rb
53
+ lib/most/tasks/general/win/borland_delphi.rb
54
+ lib/most/tasks/general/win/brainf.rb
50
55
  lib/most/tasks/general/win/cs.rb
51
56
  lib/most/tasks/general/win/erlang.rb
52
57
  lib/most/tasks/general/win/gcc.rb
@@ -60,13 +65,29 @@ lib/most/tasks/general/win/perl.rb
60
65
  lib/most/tasks/general/win/php.rb
61
66
  lib/most/tasks/general/win/python.rb
62
67
  lib/most/tasks/general/win/ruby.rb
68
+ lib/most/tasks/general/win/run.rb
63
69
  lib/most/tasks/general/win/vb.rb
64
70
  lib/most/tasks/general/win/vc.rb
65
71
  lib/most/tasks/general/win/vs.rb
72
+ samples/custom/ones/check.dpr
73
+ samples/custom/ones/ones_is.dpr
74
+ samples/custom/ones/ones_rs.dpr
75
+ samples/custom/ones/problem.xml
76
+ samples/custom/ones/tests/clean.bat
77
+ samples/custom/ones/tests/make.bat
78
+ samples/custom/ones/tests/make_answers.bat
79
+ samples/custom/ones/tests/ones_rs.exe
80
+ samples/custom/ones/tests/shuffle.dpr
81
+ samples/custom/ones/tests/shuffle.exe
82
+ samples/custom/ones/tests/tests.lst
83
+ samples/problem/solutions/brainf/main.b
84
+ samples/problem/solutions/brainf/tests.yml
66
85
  samples/problem/solutions/cpp/main.cpp
67
86
  samples/problem/solutions/cpp/tests.yml
68
87
  samples/problem/solutions/cs/main.cs
69
88
  samples/problem/solutions/cs/tests.yml
89
+ samples/problem/solutions/delphi/main.dpr
90
+ samples/problem/solutions/delphi/tests.yml
70
91
  samples/problem/solutions/erlang/main.erl
71
92
  samples/problem/solutions/erlang/tests.yml
72
93
  samples/problem/solutions/haskell/main.hs
data/Rakefile CHANGED
@@ -35,9 +35,7 @@ $hoe = Hoe.spec Most::UNIX_NAME do
35
35
  self.post_install_message = File.read('PostInstall.txt')
36
36
  self.readme_file = 'README.txt'
37
37
 
38
- self.extra_deps = [['sys-proctable', '>= 0.9.0'],
39
- ['open4', '>= 1.0.1'],
40
- ['win32-open3', '>= 0.3.1']]
38
+ self.extra_deps = [['sys-proctable', '>= 0.9.0']]
41
39
 
42
40
  self.extra_dev_deps = [['newgem', '>= 1.5.1']]
43
41
  end
data/lib/most/context.rb CHANGED
@@ -102,6 +102,10 @@ module Most
102
102
  interface :show_message do |instance, text, is_log_data|
103
103
  instance.show_message(text, is_log_data)
104
104
  end
105
+
106
+ interface :state do |instance, text|
107
+ instance.state(text)
108
+ end
105
109
  end
106
110
 
107
111
  service :starter do
@@ -58,10 +58,15 @@ module Most
58
58
  @logger.info(text)
59
59
  end
60
60
 
61
- def show_message(message, is_log_data = false)
62
- puts "#{message}"
61
+ def show_message(message, is_log_data = true)
62
+ puts message unless @modes[:quiet]
63
63
  log_message(message) if is_log_data
64
64
  end
65
+
66
+ def state(message)
67
+ puts message if @modes[:verbose]
68
+ log_message(message)
69
+ end
65
70
  end
66
71
 
67
72
  end
data/lib/most/executor.rb CHANGED
@@ -63,16 +63,16 @@ module Most
63
63
  end
64
64
 
65
65
  def output_version()
66
- @environment.show_message("#{FULL_NAME} version #{VERSION}")
67
- @environment.show_message("#{COPYRIGHT}")
66
+ @environment.show_message("#{FULL_NAME} version #{VERSION}", false)
67
+ @environment.show_message("#{COPYRIGHT}", false)
68
68
  end
69
69
 
70
70
  def output_options()
71
- @environment.show_message("Available options: \n\n")
72
- @environment.show_message("Usage: #{UNIX_NAME} {[option] [parameter]}")
71
+ @environment.show_message("Available options: \n\n", false)
72
+ @environment.show_message("Usage: #{UNIX_NAME} {[option] [parameter]}", false)
73
73
 
74
74
  SERVICES[:starter].usage.each do |name, options|
75
- @environment.show_message("\n\t#{options[2]}\n\t\t#{options[0]}, #{options[1]}")
75
+ @environment.show_message("\n\t#{options[2]}\n\t\t#{options[0]}, #{options[1]}", false)
76
76
  end
77
77
  end
78
78
  end
@@ -56,4 +56,9 @@ class Numeric
56
56
  def petabytes()
57
57
  self * 1099511627776
58
58
  end
59
+
60
+ def w()
61
+ result = ''; 1.upto(self) do result += ' ' end
62
+ result
63
+ end
59
64
  end
@@ -18,7 +18,9 @@
18
18
 
19
19
  require 'time'
20
20
  require 'yaml'
21
+ require "rexml/document"
21
22
  require 'timeout'
23
+ require 'fileutils'
22
24
 
23
25
  require 'most/helpers/memory_out'
24
26
 
@@ -55,6 +57,7 @@ module Most
55
57
 
56
58
  include Timeout
57
59
  include MemoryOut
60
+ include FileUtils
58
61
 
59
62
  include BoxHelpers
60
63
 
@@ -74,7 +77,10 @@ module Most
74
77
  end
75
78
 
76
79
  def run(step)
77
- result = Report.new("Box: #{@name}")
80
+ SERVICES[:environment].state("#{6.w}Executing a test box #{object_id}")
81
+ SERVICES[:environment].state("#{6.w}Step type: #{step.class}")
82
+
83
+ result = Report.new("Box: #{object_id}")
78
84
 
79
85
  if @options[:tests/:report/:specs]
80
86
  result.specs = {:options => @options,
@@ -84,10 +90,41 @@ module Most
84
90
  end
85
91
 
86
92
  result << execute(step)
93
+
94
+ SERVICES[:environment].state("#{6.w}|--> Finished.")
95
+
87
96
  result
88
97
  end
89
98
 
90
99
  private
100
+ def timeout_with_specs(sec, klass = nil, &block)
101
+ @result[:limits] ||= {}
102
+ @result[:limits][:time_limit] = sec
103
+
104
+ timeout(sec, klass, &block)
105
+ end
106
+
107
+ def memory_out_with_specs(bytes, pid = nil, precision = 0.1, klass = nil, &block)
108
+ @result[:limits] ||= {}
109
+ @result[:limits][:memory_limit] = bytes
110
+
111
+ memory_out(bytes, pid, precision, klass, &block)
112
+ end
113
+
114
+ def virtual_memory_out_with_specs(bytes, pid = nil, precision = 0.1, klass = nil, &block)
115
+ @result[:limits] ||= {}
116
+ @result[:limits][:virtual_memory_limit] = bytes
117
+
118
+ virtual_memory_out(bytes, pid, precision, klass, &block)
119
+ end
120
+
121
+ def total_memory_out_with_specs(bytes, pid = nil, precision = 0.1, klass = nil, &block)
122
+ @result[:limits] ||= {}
123
+ @result[:limits][:total_memory_limit] = bytes
124
+
125
+ total_memory_out(bytes, pid, precision, klass, &block)
126
+ end
127
+
91
128
  def execute(step)
92
129
  @result[:started] = Time.now
93
130
  @result[:success] = true
@@ -89,7 +89,9 @@ module Most
89
89
  end
90
90
 
91
91
  def run()
92
- SERVICES[:environment].log_message("Working...")
92
+ SERVICES[:environment].show_message("Working...")
93
+ SERVICES[:environment].state("Processing submission #{@name}")
94
+ SERVICES[:environment].state("Number of test cases: #{@tests.size}")
93
95
 
94
96
  result = Report.new("Submission: #{@name}")
95
97
 
@@ -110,6 +112,8 @@ module Most
110
112
  end
111
113
  end
112
114
 
115
+ SERVICES[:environment].state("|--> Finished.")
116
+
113
117
  result.to_yaml()
114
118
  end
115
119
  end
@@ -61,6 +61,8 @@ module Most
61
61
  end
62
62
 
63
63
  def run(options, entities)
64
+ SERVICES[:environment].state("#{2.w}Processing test case: #{@name}")
65
+
64
66
  result = Report.new("Test Case: #{@name}")
65
67
 
66
68
  if options[:tests/:report/:specs]
@@ -71,6 +73,12 @@ module Most
71
73
  end
72
74
 
73
75
  result << process(options, entities)
76
+
77
+ correct_status = result.last.last[:correct]; correct_status ||= false
78
+ message = "#{2.w}|--> Test case '#{@name}' correct?: #{correct_status}"
79
+
80
+ SERVICES[:environment].show_message(message)
81
+
74
82
  result
75
83
  end
76
84
 
@@ -78,6 +86,7 @@ module Most
78
86
  def process(options, entities)
79
87
  result = @runner.run(options, entities, @input)
80
88
 
89
+ result.last[:correct_output] = @output
81
90
  if result.last[:success]
82
91
  process_result!(result.last, options)
83
92
  end
@@ -46,6 +46,9 @@ module Most
46
46
  end
47
47
 
48
48
  def run(options, entities, input)
49
+ SERVICES[:environment].state("#{4.w}Processing test runner #{@name}")
50
+ SERVICES[:environment].state("#{4.w}Number of steps: #{@steps.size}")
51
+
49
52
  result = Report.new("Test Runner: #{@name}")
50
53
 
51
54
  if options[:tests/:report/:specs]
@@ -54,6 +57,9 @@ module Most
54
57
  end
55
58
 
56
59
  result << execute(options, entities, input)
60
+
61
+ SERVICES[:environment].state("#{4.w}|--> Test run successful?: #{result.last[:success]}")
62
+
57
63
  result
58
64
  end
59
65
 
@@ -87,6 +93,13 @@ module Most
87
93
  result[:steps] << step_box
88
94
  result[:process_stdout] = step_result.last[:process_stdout]
89
95
 
96
+ limits = step_result.last[:limits]
97
+
98
+ unless limits.nil?
99
+ result[:limits] ||= []
100
+ result[:limits] << limits
101
+ end
102
+
90
103
  unless step_result.last[:success]
91
104
  if options[:tests/:steps/:break/:unsuccessful]
92
105
  result[:success] = false
@@ -21,7 +21,7 @@ require 'yaml'
21
21
  module Most
22
22
 
23
23
  class Report
24
- attr_accessor :name, :specs
24
+ attr_accessor :name, :specs, :units
25
25
 
26
26
  def initialize(name = 'Untitled Report', specs = {})
27
27
  @name = name
@@ -0,0 +1,36 @@
1
+ submission do
2
+ name 'Simple Borland Delphi Submission'
3
+
4
+ entities :source_file => path('main.dpr'), :executable => path('main.exe')
5
+
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
+ :steps => {:break => {:unsuccessful => true}}}
8
+
9
+ YAML.load_file('tests.yml').each_with_index do |specs, i|
10
+
11
+ add_test TestCase do
12
+ name "Test #{i + 1}"
13
+
14
+ input specs[:input]
15
+ output specs[:output]
16
+
17
+ runner TestRunner do
18
+ name 'Borland Delphi Runner'
19
+
20
+ add_step Proc do
21
+ rake_clean 'win:borland_delphi:compile', entities[:source_file]
22
+ end
23
+
24
+ add_step Proc do
25
+ timeout_with_specs specs[:time] do
26
+ total_memory_out_with_specs specs[:memory] do
27
+ rake_clean 'win:borland_delphi:run', entities[:executable], input
28
+ end
29
+ end
30
+ end
31
+
32
+ end
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+ submission do
2
+ name 'Simple Brainf Submission'
3
+
4
+ entities :executable => path('main.b')
5
+
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
+ :steps => {:break => {:unsuccessful => true}}}
8
+
9
+ YAML.load_file('tests.yml').each_with_index do |specs, i|
10
+
11
+ add_test TestCase do
12
+ name "Test #{i + 1}"
13
+
14
+ input specs[:input]
15
+ output specs[:output]
16
+
17
+ runner TestRunner do
18
+ name 'Brainf Runner'
19
+
20
+ add_step Proc do
21
+ timeout_with_specs specs[:time] do
22
+ total_memory_out_with_specs specs[:memory] do
23
+ rake_clean 'win:brainf:run', entities[:executable], input
24
+ end
25
+ end
26
+ end
27
+
28
+ end
29
+ end
30
+
31
+ end
32
+ end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :source_file => path('main.cpp'), :executable => path('main.exe')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -22,7 +22,7 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- total_memory_out 10.megabytes do
25
+ total_memory_out_with_specs 10.megabytes do
26
26
  rake_clean 'win:vc:run', entities[:executable], input
27
27
  end
28
28
  end
@@ -22,8 +22,8 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- timeout specs[:time] do
26
- total_memory_out specs[:memory] do
25
+ timeout_with_specs specs[:time] do
26
+ total_memory_out_with_specs specs[:memory] do
27
27
  rake_clean 'win:vc:run', entities[:executable], input
28
28
  end
29
29
  end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :source_file => path('main.cpp'), :executable => path('main.exe')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -22,7 +22,7 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- timeout 5.seconds do
25
+ timeout_with_specs 5.seconds do
26
26
  rake_clean 'win:vc:run', entities[:executable], input
27
27
  end
28
28
  end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :source_file => path('main.cs'), :executable => path('main.exe')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -22,8 +22,8 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- timeout specs[:time] do
26
- total_memory_out specs[:memory] do
25
+ timeout_with_specs specs[:time] do
26
+ total_memory_out_with_specs specs[:memory] do
27
27
  rake_clean 'win:cs:run', entities[:executable], input
28
28
  end
29
29
  end
@@ -0,0 +1,119 @@
1
+ submission do
2
+ specs = REXML::Document.new(File.new('problem.xml')).elements['problem/judging/script/testset']
3
+
4
+ problem_name = Dir.pwd().split(/[\\|\/]/).last()
5
+
6
+ number_of_tests = specs.attributes['test-count'].to_i()
7
+
8
+ input_files = Dir[specs.attributes['input-href'].gsub('#', '[0-9]').chomp('.')]
9
+ answer_files = Dir[specs.attributes['answer-href'].gsub('#', '[0-9]').chomp('.')]
10
+
11
+ input_file = specs.attributes['input-name']
12
+ output_file = specs.attributes['output-name']
13
+
14
+ time_limit = specs.attributes['time-limit'].downcase
15
+ if time_limit['ms']
16
+ time_limit = time_limit.gsub('ms', '').to_i().milliseconds
17
+ elsif time_limit['s']
18
+ time_limit = time_limit.gsub('s', '').to_i()
19
+ elsif time_limit['m']
20
+ time_limit = time_limit.gsub('m', '').to_i().minutes
21
+ elsif time_limit['m']
22
+ time_limit = time_limit.gsub('h', '').to_i().hours
23
+ end
24
+
25
+ memory_limit = specs.attributes['memory-limit'].to_i()
26
+
27
+ name "Custom Borland Delphi Submission: #{problem_name}"
28
+
29
+ entities :problem_name => problem_name,
30
+
31
+ :checker => path('check.dpr'), :checker_executable => path('check.exe'),
32
+ :source => path("#{problem_name}_is.dpr"), :executable => path("#{problem_name}_is.exe"),
33
+
34
+ :input_file => path(input_file),
35
+ :output_file => path(output_file),
36
+ :answer_file => path("#{problem_name}.a"),
37
+
38
+ :result_file => path('result.xml'),
39
+
40
+ :input_files => input_files,
41
+ :answer_files => answer_files
42
+
43
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
44
+ :steps => {:break => {:unsuccessful => true}}}
45
+
46
+ entities = entities()
47
+
48
+ 1.upto(number_of_tests) do |i|
49
+
50
+ add_test TestCase do
51
+ name "Test #{i}"
52
+
53
+ input path(entities[:input_file])
54
+ output 'testlib: accepted'
55
+
56
+ output_destination entities[:result_file]
57
+
58
+ output_preprocessor Proc do |text|
59
+ 'testlib: ' + REXML::Document.new(text).elements['result'].
60
+ attributes['outcome'].
61
+ strip().
62
+ downcase() rescue text
63
+ end
64
+
65
+ runner TestRunner do
66
+ name 'Custom Borland Delphi Runner'
67
+
68
+ add_step Proc do
69
+ rake_clean 'win:borland_delphi:compile', entities[:checker]
70
+ end
71
+
72
+ add_step Proc do
73
+ rake_clean 'win:borland_delphi:compile', entities[:source]
74
+ end
75
+
76
+ add_step Proc do
77
+ rake_clean 'win:borland_delphi:compile', entities[:source]
78
+ end
79
+
80
+ add_step Proc do
81
+ if entities[:input_files].size != number_of_tests or
82
+ entities[:answer_files].size != number_of_tests
83
+ STDOUT.puts 'buba'
84
+
85
+ rake 'win:run', 'cd tests && make'
86
+
87
+ entities[:input_files] = Dir[specs.attributes['input-href'].gsub('#', '[0-9]').chomp('.')]
88
+ entities[:answer_files] = Dir[specs.attributes['answer-href'].gsub('#', '[0-9]').chomp('.')]
89
+ end
90
+ end
91
+
92
+ add_step Proc do
93
+ cp entities[:input_files][i - 1], File.join(Dir.pwd, entities[:input_file])
94
+ cp entities[:answer_files][i - 1], File.join(Dir.pwd, entities[:answer_file])
95
+ end
96
+
97
+ add_step Proc do
98
+ timeout_with_specs time_limit do
99
+ total_memory_out_with_specs memory_limit do
100
+ rake_clean 'win:borland_delphi:run', entities[:executable], input
101
+ end
102
+ end
103
+ end
104
+
105
+ add_step Proc do
106
+ rake 'win:run', entities[:checker_executable],
107
+ "#{entities[:input_file]} " +
108
+ "#{entities[:output_file]} " +
109
+ "#{entities[:answer_file]} #{entities[:result_file]} -xml"
110
+
111
+ rm [entities[:input_file],
112
+ entities[:output_file],
113
+ entities[:answer_file]], :force => true
114
+ end
115
+ end
116
+ end
117
+
118
+ end
119
+ end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :source_file => path('main.erl'), :entry_function => path('main')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -22,8 +22,8 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- timeout specs[:time] do
26
- total_memory_out specs[:memory] do
25
+ timeout_with_specs specs[:time] do
26
+ total_memory_out_with_specs specs[:memory] do
27
27
  rake_clean 'win:erlang:run', entities[:entry_function], input
28
28
  end
29
29
  end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :source_file => path('main.hs'), :executable => path('main.exe')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -22,8 +22,8 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- timeout specs[:time] do
26
- total_memory_out specs[:memory] do
25
+ timeout_with_specs specs[:time] do
26
+ total_memory_out_with_specs specs[:memory] do
27
27
  rake_clean 'win:haskell:run', entities[:executable], input
28
28
  end
29
29
  end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :source_file => path('Main.java'), :executable => path('Main')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -22,8 +22,8 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- timeout specs[:time] do
26
- total_memory_out specs[:memory] do
25
+ timeout_with_specs specs[:time] do
26
+ total_memory_out_with_specs specs[:memory] do
27
27
  rake_clean 'win:java:run', entities[:executable], input
28
28
  end
29
29
  end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :executable => path('main.lisp')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -18,8 +18,8 @@ submission do
18
18
  name 'Lisp Runner'
19
19
 
20
20
  add_step Proc do
21
- timeout specs[:time] do
22
- total_memory_out specs[:memory] do
21
+ timeout_with_specs specs[:time] do
22
+ total_memory_out_with_specs specs[:memory] do
23
23
  rake_clean 'win:lisp:run', entities[:executable], input
24
24
  end
25
25
  end
@@ -3,7 +3,7 @@ submission do
3
3
 
4
4
  entities :source_file => path('main.lua'), :executable => path('main.out')
5
5
 
6
- options :tests => {:report => {:differences => true, :time => true, :specs => true},
6
+ options :tests => {:report => {:differences => true, :time => true, :specs => false},
7
7
  :steps => {:break => {:unsuccessful => true}}}
8
8
 
9
9
  YAML.load_file('tests.yml').each_with_index do |specs, i|
@@ -22,8 +22,8 @@ submission do
22
22
  end
23
23
 
24
24
  add_step Proc do
25
- timeout specs[:time] do
26
- total_memory_out specs[:memory] do
25
+ timeout_with_specs specs[:time] do
26
+ total_memory_out_with_specs specs[:memory] do
27
27
  rake_clean 'win:lua:run', entities[:executable], input
28
28
  end
29
29
  end