diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2020-02-07 11:24:35 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-07 11:24:35 -0800 |
| commit | 8db6db5dac70c25b04cd4dd84392484dee822fbe (patch) | |
| tree | 4734de271f966ff4b9a913b15c1b7b537ecd1a8d /toolsrc/src/vcpkg-test/dependencies.cpp | |
| parent | 2873f07823df192ba55693d200850669eabe332c (diff) | |
| download | vcpkg-8db6db5dac70c25b04cd4dd84392484dee822fbe.tar.gz vcpkg-8db6db5dac70c25b04cd4dd84392484dee822fbe.zip | |
[vcpkg] Further parser improvements (#9895)
* [vcpkg] Consolidate several internal parsers together (packagespecs + logicexpression + control) and enhance error messages
* [vcpkg] Migrate Build-Depends parsing to new framework
* [vcpkg] Fix tests. Re-enable underscores in feature names due to libwebp[vwebp_sdl] -- todo: rename this feature and remove underscores.
Diffstat (limited to 'toolsrc/src/vcpkg-test/dependencies.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg-test/dependencies.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/toolsrc/src/vcpkg-test/dependencies.cpp b/toolsrc/src/vcpkg-test/dependencies.cpp index 63e7cfee7..c9eb0df35 100644 --- a/toolsrc/src/vcpkg-test/dependencies.cpp +++ b/toolsrc/src/vcpkg-test/dependencies.cpp @@ -2,14 +2,17 @@ #include <vcpkg-test/mockcmakevarprovider.h> #include <vcpkg-test/util.h> #include <vcpkg/dependencies.h> +#include <vcpkg/paragraphparser.h> #include <vcpkg/sourceparagraph.h> using namespace vcpkg; -using Parse::parse_comma_list; +using namespace vcpkg::Parse; TEST_CASE ("parse depends", "[dependencies]") { - auto v = expand_qualified_dependencies(parse_comma_list("liba (windows)")); + auto w = parse_dependencies_list("liba (windows)"); + REQUIRE(w); + auto& v = *w.get(); REQUIRE(v.size() == 1); REQUIRE(v.at(0).depend.name == "liba"); REQUIRE(v.at(0).qualifier == "windows"); @@ -23,7 +26,9 @@ TEST_CASE ("filter depends", "[dependencies]") const std::unordered_map<std::string, std::string> arm_uwp_cmake_vars{{"VCPKG_TARGET_ARCHITECTURE", "arm"}, {"VCPKG_CMAKE_SYSTEM_NAME", "WindowsStore"}}; - auto deps = expand_qualified_dependencies(parse_comma_list("liba (windows), libb, libc (uwp)")); + auto deps_ = parse_dependencies_list("liba (!uwp), libb, libc (uwp)"); + REQUIRE(deps_); + auto& deps = *deps_.get(); auto v = filter_dependencies(deps, Triplet::X64_WINDOWS, x64_win_cmake_vars); REQUIRE(v.size() == 2); REQUIRE(v.at(0).package_spec.name() == "liba"); @@ -37,10 +42,10 @@ TEST_CASE ("filter depends", "[dependencies]") TEST_CASE ("parse feature depends", "[dependencies]") { - auto u = parse_comma_list("libwebp[anim, gif2webp, img2webp, info, mux, nearlossless, " - "simd, cwebp, dwebp], libwebp[vwebp_sdl, extras] (!osx)"); - REQUIRE(u.at(1) == "libwebp[vwebp_sdl, extras] (!osx)"); - auto v = expand_qualified_dependencies(u); + auto u_ = parse_dependencies_list("libwebp[anim, gif2webp, img2webp, info, mux, nearlossless, " + "simd, cwebp, dwebp], libwebp[vwebp-sdl, extras] (!osx)"); + REQUIRE(u_); + auto& v = *u_.get(); REQUIRE(v.size() == 2); auto&& a0 = v.at(0); REQUIRE(a0.depend.name == "libwebp"); @@ -67,9 +72,7 @@ TEST_CASE ("qualified dependency", "[dependencies]") REQUIRE(plan.install_actions.size() == 2); REQUIRE(plan.install_actions.at(0).feature_list == std::vector<std::string>{"core"}); - FullPackageSpec linspec_a{PackageSpec::from_name_and_triplet("a", Triplet::from_canonical_name("x64-linux")) - .value_or_exit(VCPKG_LINE_INFO), - {}}; + FullPackageSpec linspec_a{{"a", Triplet::from_canonical_name("x64-linux")}, {}}; var_provider.dep_info_vars[linspec_a.package_spec].emplace("VCPKG_CMAKE_SYSTEM_NAME", "Linux"); auto plan2 = vcpkg::Dependencies::create_feature_install_plan(map_port, var_provider, {linspec_a}, {}); REQUIRE(plan2.install_actions.size() == 2); |
