#include "terminal.hpp" #include #include //Requires display server to work //However, it is possible to use the Broadway backend if the test is run in a pure terminal environment: //broadwayd& //make test int main() { auto app = Gtk::Application::create(); Gsv::init(); { auto link = Terminal::get().find_link("~/test/test.cc:7:41: error: expected ';' after expression."); assert(link); assert(link->start_pos == 0); assert(link->end_pos == 19); assert(link->path == "~/test/test.cc"); assert(link->line == 7); assert(link->line_index == 41); } { auto link = Terminal::get().find_link("Assertion failed: (false), function main, file ~/test/test.cc, line 15."); assert(link); assert(link->start_pos == 47); assert(link->end_pos == 70); assert(link->path == "~/test/test.cc"); assert(link->line == 15); assert(link->line_index == 1); } { auto link = Terminal::get().find_link("test: ~/examples/main.cpp:17: int main(int, char**): Assertion `false' failed."); assert(link); assert(link->start_pos == 6); assert(link->end_pos == 28); assert(link->path == "~/examples/main.cpp"); assert(link->line == 17); assert(link->line_index == 1); } { auto link = Terminal::get().find_link("ERROR:~/test/test.cc:36:int main(): assertion failed: (false)"); assert(link); assert(link->start_pos == 6); assert(link->end_pos == 23); assert(link->path == "~/test/test.cc"); assert(link->line == 36); assert(link->line_index == 1); } }