diff --git a/lib/importproject.cpp b/lib/importproject.cpp index 16bcc2e471f..39818d0c0ce 100644 --- a/lib/importproject.cpp +++ b/lib/importproject.cpp @@ -455,9 +455,11 @@ bool ImportProject::importSln(std::istream &istr, const std::string &path, const if (pos1 == std::string::npos) continue; std::string vcxproj(line.substr(pos1+1, pos-pos1+7)); + vcxproj = Path::toNativeSeparators(std::move(vcxproj)); if (!Path::isAbsolute(vcxproj)) vcxproj = path + vcxproj; - if (!importVcxproj(Path::fromNativeSeparators(vcxproj), variables, emptyString, fileFilters)) { + vcxproj = Path::fromNativeSeparators(std::move(vcxproj)); + if (!importVcxproj(vcxproj, variables, emptyString, fileFilters)) { printError("failed to load '" + vcxproj + "' from Visual Studio solution"); return false; } diff --git a/test/cli/project_test.py b/test/cli/project_test.py index 8f6e221f765..8ac243007ba 100644 --- a/test/cli/project_test.py +++ b/test/cli/project_test.py @@ -3,6 +3,7 @@ import pytest import os import json +import sys from testutils import cppcheck @@ -49,6 +50,8 @@ def test_json_entry_file_not_found(tmpdir): ] expected = "'{}' from compilation database does not exist".format(os.path.join(tmpdir, "bug1.cpp")) + if sys.platform == "win32": + expected = expected.replace('\\', '/') _test_project_error(tmpdir, "json", json.dumps(compilation_db), expected) @@ -117,7 +120,9 @@ def test_sln_project_file_not_found(tmpdir): "EndProject\r\n" expected = "Visual Studio project file is not a valid XML - XML_ERROR_FILE_NOT_FOUND\n" \ - "cppcheck: error: failed to load '{}' from Visual Studio solution".format(os.path.join(tmpdir, "cli\\cli.vcxproj")) + "cppcheck: error: failed to load '{}' from Visual Studio solution".format(os.path.join(tmpdir, "cli/cli.vcxproj")) + if sys.platform == "win32": + expected = expected.replace('\\', '/') _test_project_error(tmpdir, "sln", content, expected)