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
29
# File 'lib/test_hook.rb', line 15

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

  <<EOF
JMP main

#{request.extra}

main:
#{skip_command}
#{request.content}
#{input_file_separator}
#{initial_state_file}
EOF
end

#execute!(request) ⇒ Object



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

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

#post_process_file(file, result, status) ⇒ Object



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

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