From 135f91de1eef9e906eb7a5bcf323f6eff9a2b5da Mon Sep 17 00:00:00 2001 From: ras0219 Date: Wed, 1 Jul 2020 11:36:09 -0700 Subject: [vcpkg] Implement --x-write-nuget-packages-config= setting for `install` and `x-set-installed` (#12138) * [vcpkg] Implement --x-write-nuget-packages-config= setting for `install` and `x-set-installed`. * [vcpkg] Add end-to-end testing suite for install, remove, and binary caching * [vcpkg] Define `$TestingRoot in end-to-end-tests.ps1 * [vcpkg] Address CR comments Co-authored-by: Robert Schumacher --- toolsrc/src/vcpkg-test/binarycaching.cpp | 88 +++++++++++++++++++++++++++++--- 1 file changed, 81 insertions(+), 7 deletions(-) (limited to 'toolsrc/src/vcpkg-test/binarycaching.cpp') diff --git a/toolsrc/src/vcpkg-test/binarycaching.cpp b/toolsrc/src/vcpkg-test/binarycaching.cpp index 817b85e03..b220b5ccb 100644 --- a/toolsrc/src/vcpkg-test/binarycaching.cpp +++ b/toolsrc/src/vcpkg-test/binarycaching.cpp @@ -1,10 +1,11 @@ #include #include +#include #include +#include #include #include #include -#include #include using namespace vcpkg; @@ -96,9 +97,9 @@ Features: a, b Dependencies: - + - + )"; auto expected_lines = Strings::split(expected, '\n'); auto nuspec_lines = Strings::split(nuspec, '\n'); @@ -123,8 +124,14 @@ TEST_CASE ("XmlSerializer", "[XmlSerializer]") xml = XmlSerializer(); xml.emit_declaration(); - xml.start_complex_open_tag("a").text_attr("b", "<").text_attr("c", " ").finish_self_closing_complex_tag(); - REQUIRE(xml.buf == R"()"); + xml.start_complex_open_tag("a") + .text_attr("b", "<") + .text_attr("c", " ") + .finish_self_closing_complex_tag() + .line_break(); + xml.simple_tag("d", "e"); + REQUIRE(xml.buf == R"()" + "\ne"); xml = XmlSerializer(); xml.start_complex_open_tag("a").finish_complex_open_tag(); @@ -134,5 +141,72 @@ TEST_CASE ("XmlSerializer", "[XmlSerializer]") xml.line_break(); xml.open_tag("a").line_break().line_break(); xml.close_tag("a").line_break().line_break(); - REQUIRE(xml.buf == "\n\n \n \n\n"); -} \ No newline at end of file + REQUIRE(xml.buf == "\n\n\n\n\n"); + + xml = XmlSerializer(); + xml.start_complex_open_tag("a") + .text_attr("b", "<") + .line_break() + .text_attr("c", " ") + .finish_complex_open_tag() + .line_break(); + xml.simple_tag("d", "e").line_break(); + REQUIRE(xml.buf == "\n e\n"); +} + +TEST_CASE ("generate_nuget_packages_config", "[generate_nuget_packages_config]") +{ + Dependencies::ActionPlan plan; + auto packageconfig = generate_nuget_packages_config(plan); + REQUIRE(packageconfig == R"( + + +)"); + + auto pghs = Paragraphs::parse_paragraphs(R"( +Source: zlib +Version: 1.5 +Description: a spiffy compression library wrapper +)", + ""); + REQUIRE(pghs.has_value()); + auto maybe_scf = SourceControlFile::parse_control_file(fs::path(), std::move(*pghs.get())); + REQUIRE(maybe_scf.has_value()); + SourceControlFileLocation scfl{std::move(*maybe_scf.get()), fs::path()}; + plan.install_actions.push_back(Dependencies::InstallPlanAction()); + plan.install_actions[0].spec = PackageSpec("zlib", Triplet::X64_ANDROID); + plan.install_actions[0].source_control_file_location = scfl; + plan.install_actions[0].abi_info = Build::AbiInfo{}; + plan.install_actions[0].abi_info.get()->package_abi = "packageabi"; + + packageconfig = generate_nuget_packages_config(plan); + REQUIRE(packageconfig == R"( + + + +)"); + + auto pghs2 = Paragraphs::parse_paragraphs(R"( +Source: zlib2 +Version: 1.52 +Description: a spiffy compression library wrapper +)", + ""); + REQUIRE(pghs2.has_value()); + auto maybe_scf2 = SourceControlFile::parse_control_file(fs::path(), std::move(*pghs2.get())); + REQUIRE(maybe_scf2.has_value()); + SourceControlFileLocation scfl2{std::move(*maybe_scf2.get()), fs::path()}; + plan.install_actions.push_back(Dependencies::InstallPlanAction()); + plan.install_actions[1].spec = PackageSpec("zlib2", Triplet::X64_ANDROID); + plan.install_actions[1].source_control_file_location = scfl2; + plan.install_actions[1].abi_info = Build::AbiInfo{}; + plan.install_actions[1].abi_info.get()->package_abi = "packageabi2"; + + packageconfig = generate_nuget_packages_config(plan); + REQUIRE(packageconfig == R"( + + + + +)"); +} -- cgit v1.2.3