Class: PrologTestHook

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

Instance Method Summary collapse

Instance Method Details

#command_line(filename) ⇒ Object



14
15
16
# File 'lib/test_hook.rb', line 14

def command_line(filename)
  "swipl -f #{filename} --quiet -t run_tests 2>&1"
end

#compile_file_content(request) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/test_hook.rb', line 22

def compile_file_content(request)
  ":- begin_tests(mumuki_submission_test, []).\n\#{request.test}\n\#{request.content.strip}\n\#{request.extra}\n:- end_tests(mumuki_submission_test).\n"
end

#format_code(code) ⇒ Object



18
19
20
# File 'lib/test_hook.rb', line 18

def format_code(code)
  "```\n#{code}\n```"
end

#post_process_file(file, result, status) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/test_hook.rb', line 4

def post_process_file(file, result, status)
  if /ERROR: #{file.path}:.*: Syntax error: .*/ =~ result
    [format_code(result), :failed]
  elsif /Caught signal 24 \(xcpu\)/ =~ result
    [format_code(I18n.t(:time_exceeded)), :failed]
  else
    [format_code(result), status]
  end
end