This commit is contained in:
parent
a25b0a1ded
commit
8892154b28
70 changed files with 2780 additions and 596 deletions
|
|
@ -1,5 +1,5 @@
|
|||
//SPDX-License-Identifier: LGPL-3.0-only
|
||||
//SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
||||
// SPDX-License-Identifier: LGPL-3.0-only
|
||||
// SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
||||
|
||||
#include <stdlib.h>
|
||||
import std;
|
||||
|
|
@ -27,7 +27,7 @@ namespace {
|
|||
if (const char* env = std::getenv("CRAFTER_BUILD_HOME"); env && *env) {
|
||||
return env;
|
||||
}
|
||||
for (const char* candidate : {
|
||||
for (std::string_view candidate : {
|
||||
"/usr/local/share/crafter-build",
|
||||
"/usr/share/crafter-build",
|
||||
}) {
|
||||
|
|
@ -47,8 +47,7 @@ namespace {
|
|||
int main() {
|
||||
fs::path home = FindCrafterBuildHome();
|
||||
if (home.empty()) {
|
||||
std::println(std::cerr,
|
||||
"SKIP: no installed share/crafter-build found and CRAFTER_BUILD_HOME unset");
|
||||
std::println(std::cerr, "SKIP: no installed share/crafter-build found and CRAFTER_BUILD_HOME unset");
|
||||
return 77;
|
||||
}
|
||||
setenv("CRAFTER_BUILD_HOME", home.string().c_str(), 1);
|
||||
|
|
@ -64,9 +63,9 @@ int main() {
|
|||
fs::create_directories(cacheDir);
|
||||
setenv("XDG_CACHE_HOME", cacheDir.string().c_str(), 1);
|
||||
|
||||
constexpr int N = 4;
|
||||
constexpr std::int32_t N = 4;
|
||||
std::vector<fs::path> projects;
|
||||
for (int i = 0; i < N; ++i) {
|
||||
for (std::int32_t i = 0; i < N; ++i) {
|
||||
fs::path dir = scratch / std::format("p{}", i);
|
||||
fs::create_directories(dir);
|
||||
WriteFile(dir / "project.cpp", std::format(
|
||||
|
|
@ -89,7 +88,7 @@ int main() {
|
|||
std::array<std::string, N> errors;
|
||||
std::vector<std::thread> threads;
|
||||
threads.reserve(N);
|
||||
for (int i = 0; i < N; ++i) {
|
||||
for (std::int32_t i = 0; i < N; ++i) {
|
||||
threads.emplace_back([&, i]() {
|
||||
try {
|
||||
std::array<std::string_view, 0> args = {};
|
||||
|
|
@ -101,8 +100,8 @@ int main() {
|
|||
}
|
||||
for (std::thread& t : threads) t.join();
|
||||
|
||||
int failures = 0;
|
||||
for (int i = 0; i < N; ++i) {
|
||||
std::int32_t failures = 0;
|
||||
for (std::int32_t i = 0; i < N; ++i) {
|
||||
if (!errors[i].empty()) {
|
||||
std::println(std::cerr, "FAIL p{}: {}", i, errors[i]);
|
||||
++failures;
|
||||
|
|
@ -112,9 +111,7 @@ int main() {
|
|||
fs::remove_all(scratch, ec);
|
||||
|
||||
if (failures > 0) {
|
||||
std::println(std::cerr,
|
||||
"{}/{} concurrent LoadProject() invocations failed (host-cache race)",
|
||||
failures, N);
|
||||
std::println(std::cerr, "{}/{} concurrent LoadProject() invocations failed (host-cache race)", failures, N);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue