aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-10-18 19:20:11 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-10-18 19:20:11 -0700
commit9964d84b53442ef4f555cfe090ed22503b90d213 (patch)
tree112c8e00751389b6279592059c38e259bd9838c3
parentecdfd3c8e3a4b924bfad5b70f6557dd9f337bd1c (diff)
downloadvcpkg-9964d84b53442ef4f555cfe090ed22503b90d213.tar.gz
vcpkg-9964d84b53442ef4f555cfe090ed22503b90d213.zip
Add extra checks on the return Visual Studio instances
-rw-r--r--toolsrc/src/vcpkg/vcpkgpaths.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp
index 34c661afd..2f2dd877e 100644
--- a/toolsrc/src/vcpkg/vcpkgpaths.cpp
+++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp
@@ -330,10 +330,19 @@ namespace vcpkg
VCPKG_LINE_INFO, ec_data.exit_code == 0, "Could not run script to detect Visual Studio instances");
const std::vector<std::string> instances_as_strings = Strings::split(ec_data.output, "\n");
+ Checks::check_exit(
+ VCPKG_LINE_INFO, !instances_as_strings.empty(), "Could not detect any Visual Studio instances");
+
std::vector<VisualStudioInstance> output;
for (const std::string& instance_as_string : instances_as_strings)
{
const std::vector<std::string> split = Strings::split(instance_as_string, "::");
+ Checks::check_exit(VCPKG_LINE_INFO,
+ split.size() == 4,
+ "Invalid Visual Studio instance format.\n"
+ "Expected: PreferenceWeight::ReleaseType::Version::PathToVisualStudio\n"
+ "Actual : %s",
+ instance_as_string);
output.push_back({split.at(3), split.at(2), split.at(1), split.at(0)});
}