Class: QsimTestHook

Inherits:
Mumukit::Templates::FileHook
  • Object
show all
Includes:
Mumukit::WithTempfile
Defined in:
lib/test_hook.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#examplesObject (readonly)

Returns the value of attribute examples.



3
4
5
# File 'lib/test_hook.rb', line 3

def examples
  @examples
end

Instance Method Details

#command_line(filename) ⇒ Object



11
12
13
# File 'lib/test_hook.rb', line 11

def command_line(filename)
  "runqsim #{filename} #{q_architecture} #{input_file_separator}"
end

#compile_file_content(request) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/test_hook.rb', line 15

def compile_file_content(request)
  @examples = to_examples(parse_test(request)[:examples])

  "JMP main\n\n\#{request.extra}\n\nmain:\n\#{request.content}\n\#{input_file_separator}\n\#{initial_state_file}\n"
end

#execute!(request) ⇒ Object



30
31
32
33
# File 'lib/test_hook.rb', line 30

def execute!(request)
  result, _ = run_file! compile request
  parse_json result
end

#post_process_file(file, result, status) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/test_hook.rb', line 35

def post_process_file(file, result, status)
  output = parse_json result

  case status
    when :passed
      framework.test output, @examples
    when :failed
      [output[:error], :errored]
    else
      [output, status]
  end
end

#tempfile_extensionObject



7
8
9
# File 'lib/test_hook.rb', line 7

def tempfile_extension
  '.qsim'
end