Fixed unit tests on MSVC

This commit is contained in:
Bartek Kryza
2023-02-07 22:18:57 +01:00
parent 865ae9d8ed
commit 43328e3e2d
3 changed files with 20 additions and 3 deletions

View File

@@ -1,4 +1,10 @@
param ($Prefix="C:\clang-uml", $BuildType="Release")
cmake -S . -B .\_build\$BuildType -DCMAKE_PREFIX_PATH="$Prefix" -Thost=x64
cmake --build .\_build\$BuildType --config $BuildType
cmake -S . -B $BuildType -DCMAKE_PREFIX_PATH="$Prefix" -Thost=x64
cmake --build $BuildType --config $BuildType
# Create compile commands in Visual Studio
# before running these tests
cd $BuildType
ctest -C $BuildType --output-on-failure
cd ..

View File

@@ -1135,9 +1135,14 @@ void translation_unit_visitor::ensure_lambda_type_is_relative(
#ifdef _MSC_VER
auto root_name = fmt::format(
"{}\\", std::filesystem::current_path().root_name().string());
if(root_name.back() == '\\') {
root_name.pop_back();
root_name.push_back('/');
}
#else
auto root_name = std::string{"/"};
#endif
std::string lambda_prefix{fmt::format("(lambda at {}", root_name)};
while (parameter_type.find(lambda_prefix) != std::string::npos) {

View File

@@ -37,13 +37,19 @@ load_config(const std::string &test_name)
{
auto config = clanguml::config::load(test_name + "/.clang-uml", true);
LOG_DBG("Loading compilation database from {}",
config.compilation_database_dir());
std::string err{};
auto compilation_database =
clang::tooling::CompilationDatabase::autoDetectFromDirectory(
config.compilation_database_dir(), err);
if (!err.empty())
if (!err.empty()) {
LOG_ERROR("Failed to load compilation database from {}",
config.compilation_database_dir());
throw std::runtime_error{err};
}
return std::make_pair(std::move(config), std::move(compilation_database));
}