// Network-gated integration test for resolver::vcpkg_probe. #include import cargoxx.resolver; import cargoxx.util; import std; namespace { auto network_tests_enabled() -> bool { auto* env = std::getenv("CARGOXX_NETWORK_TESTS"); return env != nullptr && std::string_view{env} == "1"; } } // namespace TEST_CASE("vcpkg_probe finds 'fmt' in microsoft/vcpkg", "[resolver][network]") { if (!network_tests_enabled()) { SKIP("CARGOXX_NETWORK_TESTS != 1"); } auto r = cargoxx::resolver::vcpkg_probe("fmt"); REQUIRE(r.has_value()); REQUIRE(r->find_package.starts_with("fmt")); REQUIRE_FALSE(r->targets.empty()); // fmt's vcpkg port should expose at least one fmt:: target. REQUIRE(std::ranges::any_of(r->targets, [](const std::string& t) { return t.starts_with("fmt::"); })); } TEST_CASE("vcpkg_probe returns ResolutionUnknownPackage for a 404", "[resolver][network]") { if (!network_tests_enabled()) { SKIP("CARGOXX_NETWORK_TESTS != 1"); } auto r = cargoxx::resolver::vcpkg_probe( "definitely_not_a_real_pkg_cargoxx_xyzzy"); REQUIRE_FALSE(r.has_value()); REQUIRE(r.error().code == cargoxx::util::ErrorCode::ResolutionUnknownPackage); }