17 static char binary_path[256];
26 const char *candidates[] = {
27 "./build/bin/ascii-chat.exe",
28 "./bin/ascii-chat.exe",
31 const char *fallback =
"./build/bin/ascii-chat.exe";
34 bool in_docker = (access(
"/.dockerenv", F_OK) == 0);
35 const char *build_dir = getenv(
"BUILD_DIR");
39 safe_snprintf(binary_path,
sizeof(binary_path),
"./%s/bin/ascii-chat", build_dir);
40 if (access(binary_path, X_OK) == 0) {
47 const char *candidates[] = {
49 in_docker ?
"./build_docker/bin/ascii-chat" :
"./build/bin/ascii-chat",
53 in_docker ?
"/app/build_docker/bin/ascii-chat" : NULL,
55 const char *fallback = in_docker ?
"./build_docker/bin/ascii-chat" :
"./build/bin/ascii-chat";
59 for (
size_t i = 0; i <
sizeof(candidates) /
sizeof(candidates[0]); i++) {
60 if (candidates[i] && access(candidates[i], X_OK) == 0) {
61 safe_snprintf(binary_path,
sizeof(binary_path),
"%s", candidates[i]);
68 safe_snprintf(binary_path,
sizeof(binary_path),
"%s", fallback);
const char * test_get_binary_path(void)
Get the path to the ascii-chat binary for integration tests.