1 #include "clangmm.hpp"
2 #include <cassert>
3 #include <fstream>
4 #include <iostream>
5 #include <regex>
6 
7 using namespace std;
8 
main()9 int main() {
10   std::string tests_path = LIBCLANGMM_TESTS_PATH;
11   std::string path(tests_path + "/case/main_error.cpp");
12 
13   auto index = std::make_shared<clangmm::Index>(0, 0);
14 
15   std::vector<std::string> arguments;
16   auto clang_version_string = clangmm::to_string(clang_getClangVersion());
17   const static std::regex clang_version_regex("^[A-Za-z ]+([0-9.]+).*$");
18   std::smatch sm;
19   if(std::regex_match(clang_version_string, sm, clang_version_regex)) {
20     auto clang_version = sm[1].str();
21     arguments.emplace_back("-I/usr/lib/clang/" + clang_version + "/include");
22     arguments.emplace_back("-I/usr/lib64/clang/" + clang_version + "/include"); // For Fedora
23   }
24 
25   clangmm::TranslationUnit tu(index, path, arguments);
26 
27   auto diagnostics = tu.get_diagnostics();
28   assert(diagnostics.size() > 0);
29   assert(!diagnostics[0].spelling.empty());
30   assert(diagnostics[0].severity == clangmm::Diagnostic::Severity::Error);
31 }
32