class CppTestHook
Public Instance Methods
command_line(filename)
click to toggle source
# File lib/test_hook.rb, line 10 def command_line(filename) "runcppunit #{filename}" end
compile_file_content(request)
click to toggle source
# File lib/test_hook.rb, line 30 def compile_file_content(request) <<EOF #include <cppunit/ui/text/TestRunner.h> #include <cppunit/extensions/HelperMacros.h> #{super} int main( int argc, char **argv) { CppUnit::TextUi::TestRunner runner; runner.addTest( MumukiTest::suite() ); runner.run(); return 0; } EOF end
post_process_file(file, result, status)
click to toggle source
Calls superclass method
# File lib/test_hook.rb, line 14 def post_process_file(file, result, status) if result.include? '!!TEST FINISHED WITH COMPILATION ERROR!!' [Mumukit::ContentType::Markdown.code(result), :errored] else super end end
tempfile_extension()
click to toggle source
# File lib/test_hook.rb, line 6 def tempfile_extension '.cpp' end
to_structured_result(result)
click to toggle source
# File lib/test_hook.rb, line 22 def to_structured_result(result) if result.include? '!!!FAILURES!!!' transform(result) else [['All tests passed', :passed]] end end
Private Instance Methods
format_code(result)
click to toggle source
# File lib/test_hook.rb, line 60 def format_code(result) Mumukit::ContentType::Markdown.code result end
transform(result)
click to toggle source
# File lib/test_hook.rb, line 48 def transform(result) result .split(/\d{0,9}\) test: MumukiTest::/) .drop(1) .map do |it| captures = it.split("\n") title = captures.first.split(' (F)').first result = [captures[1], captures[2], captures[3], captures[4], captures[5]].compact.join(' ').strip [title, :failed, format_code(result)] end end