[M5] verify-curated-db.sh + boost recipe (header-only)

This commit is contained in:
2026-05-10 01:42:20 +00:00
parent b0818846b2
commit f3d18b7939
29 changed files with 412 additions and 17 deletions

View File

@@ -49,16 +49,16 @@ TEST_CASE("cmd_add stores components when provided", "[cli][add]") {
auto parent = fresh_dir();
auto root = scaffold(parent);
auto r = cmd_add(root, "boost", "1.84.0", {"filesystem", "system"},
auto r = cmd_add(root, "abseil-cpp", "20240116.0", {"strings", "base"},
overlay_path(parent));
REQUIRE(r.has_value());
auto m = manifest::parse(root / "Cargoxx.toml");
REQUIRE(m.has_value());
REQUIRE(m->dependencies.size() == 1);
REQUIRE(m->dependencies[0].name == "boost");
REQUIRE(m->dependencies[0].name == "abseil-cpp");
REQUIRE(m->dependencies[0].components ==
std::vector<std::string>{"filesystem", "system"});
std::vector<std::string>{"strings", "base"});
}
TEST_CASE("cmd_add accepts an empty version and stores '*'", "[cli][add]") {
@@ -110,7 +110,7 @@ TEST_CASE("cmd_add rejects componentized package without components",
auto parent = fresh_dir();
auto root = scaffold(parent);
auto r = cmd_add(root, "boost", "1.84.0", {}, overlay_path(parent));
auto r = cmd_add(root, "abseil-cpp", "20240116.0", {}, overlay_path(parent));
REQUIRE_FALSE(r.has_value());
REQUIRE(r.error().code == ErrorCode::LinkdbComponentNotSupported);
}

View File

@@ -104,16 +104,16 @@ TEST_CASE("cmd_build resolves a componentized dep", "[cli][build]") {
auto parent = fresh_dir();
REQUIRE(cmd_new("app", false, parent).has_value());
auto root = parent / "app";
add_dep(root, "boost", "1.84.0", {"filesystem", "system"});
add_dep(root, "abseil-cpp", "20240116.0", {"strings", "base"});
auto r = cmd_build(root, true, false, std::nullopt, overlay_path(parent));
REQUIRE(r.has_value());
auto cmake_text = read_file(root / "build" / "CMakeLists.txt");
REQUIRE(cmake_text.find("find_package(Boost REQUIRED COMPONENTS filesystem system)") !=
REQUIRE(cmake_text.find("find_package(absl CONFIG REQUIRED)") !=
std::string::npos);
REQUIRE(cmake_text.find("Boost::filesystem") != std::string::npos);
REQUIRE(cmake_text.find("Boost::system") != std::string::npos);
REQUIRE(cmake_text.find("absl::strings") != std::string::npos);
REQUIRE(cmake_text.find("absl::base") != std::string::npos);
}
TEST_CASE("cmd_build synthesizes a lockfile entry per dep", "[cli][build]") {

View File

@@ -56,19 +56,19 @@ TEST_CASE("resolve fails for an unknown package", "[linkdb]") {
REQUIRE(rec.error().code == ErrorCode::LinkdbUnknownPackage);
}
TEST_CASE("resolve substitutes boost components", "[linkdb]") {
TEST_CASE("resolve substitutes abseil-cpp components", "[linkdb]") {
auto db = open_db();
auto rec = db.resolve("boost", "1.84.0", {"filesystem", "system"});
auto rec = db.resolve("abseil-cpp", "20240116.0", {"strings", "base"});
REQUIRE(rec.has_value());
REQUIRE(rec->find_package == "Boost REQUIRED COMPONENTS filesystem system");
REQUIRE(rec->find_package == "absl CONFIG REQUIRED");
REQUIRE(rec->targets ==
std::vector<std::string>{"Boost::filesystem", "Boost::system"});
std::vector<std::string>{"absl::strings", "absl::base"});
}
TEST_CASE("resolve fails when a componentized package gets no components",
"[linkdb]") {
auto db = open_db();
auto rec = db.resolve("boost", "1.84.0");
auto rec = db.resolve("abseil-cpp", "20240116.0");
REQUIRE_FALSE(rec.has_value());
REQUIRE(rec.error().code == ErrorCode::LinkdbComponentNotSupported);
}
@@ -102,7 +102,7 @@ TEST_CASE("resolve covers all 25 curated packages", "[linkdb]") {
{"fmt", "10.2.0", {}},
{"spdlog", "1.13.0", {}},
{"nlohmann_json", "3.11.0", {}},
{"boost", "1.84.0", {"system"}},
{"boost", "1.84.0", {}},
{"openssl", "3.2.0", {}},
{"zlib", "1.3.0", {}},
{"sqlite3", "3.45.0", {}},