Module: CIAT::Processors::BasicProcessing
- Included in:
- Compilers::Java, Executors::Java, Executors::Parrot
- Defined in:
- lib/ciat/processors/basic_processing.rb
Instance Method Summary collapse
-
#command_line_args(test) ⇒ Object
:nodoc:.
-
#diff(test) ⇒ Object
Compares the expected and generated executions.
- #error_file(test) ⇒ Object
- #execute(test) ⇒ Object
-
#for_test ⇒ Object
Produces a clone for an individual test.
- #input_file(test) ⇒ Object
- #output_file(test) ⇒ Object
-
#process(test) ⇒ Object
Executes the program, and diffs the output.
- #relevant_element_names ⇒ Object
- #relevant_elements(test) ⇒ Object
Instance Method Details
#command_line_args(test) ⇒ Object
:nodoc:
30 31 32 |
# File 'lib/ciat/processors/basic_processing.rb', line 30 def command_line_args(test) #:nodoc: test.element?(:command_line) ? test.element(:command_line).content.strip : '' end |
#diff(test) ⇒ Object
Compares the expected and generated executions.
35 36 37 38 39 40 |
# File 'lib/ciat/processors/basic_processing.rb', line 35 def diff(test) html_diff( test.element(processor_kind.output_name).as_file, test.element(processor_kind.output_name, :generated).as_file, test.element(processor_kind.output_name, :diff).as_file) end |
#error_file(test) ⇒ Object
60 61 62 |
# File 'lib/ciat/processors/basic_processing.rb', line 60 def error_file(test) test.element(processor_kind.output_name, :error).as_file end |
#execute(test) ⇒ Object
26 27 28 |
# File 'lib/ciat/processors/basic_processing.rb', line 26 def execute(test) system "#{executable} '#{input_file(test)}' #{command_line_args(test)} > '#{output_file(test)}' 2> '#{error_file(test)}'" end |
#for_test ⇒ Object
Produces a clone for an individual test.
4 5 6 7 8 |
# File 'lib/ciat/processors/basic_processing.rb', line 4 def for_test copy = clone copy.light = light.clone copy end |
#input_file(test) ⇒ Object
52 53 54 |
# File 'lib/ciat/processors/basic_processing.rb', line 52 def input_file(test) test.element(processor_kind.input_name).as_file end |
#output_file(test) ⇒ Object
56 57 58 |
# File 'lib/ciat/processors/basic_processing.rb', line 56 def output_file(test) test.element(processor_kind.output_name, :generated).as_file end |
#process(test) ⇒ Object
Executes the program, and diffs the output.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ciat/processors/basic_processing.rb', line 11 def process(test) # TODO: verify required elements # TODO: handle optional element if execute(test) if diff(test) light.green! else light.red! end else light.yellow! end test end |
#relevant_element_names ⇒ Object
48 49 50 |
# File 'lib/ciat/processors/basic_processing.rb', line 48 def relevant_element_names processor_kind.element_name_hash[light.setting] end |
#relevant_elements(test) ⇒ Object
42 43 44 45 46 |
# File 'lib/ciat/processors/basic_processing.rb', line 42 def relevant_elements(test) relevant_element_names. select { |name| test.element?(name) }. map { |name| test.element(name) } end |