class PrologTestHook

Public Instance Methods

command_line(filename) click to toggle source
# 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) click to toggle source
# File lib/test_hook.rb, line 22
  def compile_file_content(request)
    <<EOF
:- begin_tests(mumuki_submission_test, []).
#{request.test}
#{request.content.strip}
#{request.extra}
:- end_tests(mumuki_submission_test).
EOF
  end
format_code(code) click to toggle source
# File lib/test_hook.rb, line 18
def format_code(code)
  "```\n#{code}\n```"
end
post_process_file(file, result, status) click to toggle source
# 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