// Network-gated integration test for resolver::conan_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("conan_probe finds 'fmt' in conan-center-index", "[resolver][network]") { if (!network_tests_enabled()) { SKIP("CARGOXX_NETWORK_TESTS != 1"); } auto r = cargoxx::resolver::conan_probe("fmt"); REQUIRE(r.has_value()); REQUIRE_FALSE(r->find_package.empty()); REQUIRE_FALSE(r->targets.empty()); // fmt's recipe should set cmake_target_name = "fmt::fmt". REQUIRE(r->targets.front() == "fmt::fmt"); } TEST_CASE("conan_probe returns ResolutionUnknownPackage for a 404", "[resolver][network]") { if (!network_tests_enabled()) { SKIP("CARGOXX_NETWORK_TESTS != 1"); } auto r = cargoxx::resolver::conan_probe( "definitely_not_a_real_pkg_cargoxx_xyzzy"); REQUIRE_FALSE(r.has_value()); REQUIRE(r.error().code == cargoxx::util::ErrorCode::ResolutionUnknownPackage); }