most 0.7.5 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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