| 9357 | } |
| 9358 | |
| 9359 | static int idx773_double_index_check(const char *dir_a, const char *dir_b) { |
| 9360 | cbm_setenv("CBM_INDEX_SUPERVISOR", "0", 1); |
| 9361 | cbm_mcp_server_t *srv = cbm_mcp_server_new(NULL); |
| 9362 | if (!srv) { |
| 9363 | return IDX773_FIRST_FAILED; |
| 9364 | } |
| 9365 | char args[CBM_SZ_512]; |
| 9366 | snprintf(args, sizeof(args), "{\"repo_path\":\"%s\",\"mode\":\"full\"}", dir_a); |
| 9367 | char *r1 = cbm_mcp_handle_tool(srv, "index_repository", args); |
| 9368 | bool ok1 = r1 && strstr(r1, "indexed") != NULL; |
| 9369 | free(r1); |
| 9370 | if (!ok1) { |
| 9371 | cbm_mcp_server_free(srv); |
| 9372 | return IDX773_FIRST_FAILED; |
| 9373 | } |
| 9374 | snprintf(args, sizeof(args), "{\"repo_path\":\"%s\",\"mode\":\"full\"}", dir_b); |
| 9375 | char *r2 = cbm_mcp_handle_tool(srv, "index_repository", args); /* SIGABRT here (RED) */ |
| 9376 | bool ok2 = r2 && strstr(r2, "indexed") != NULL; |
| 9377 | free(r2); |
| 9378 | cbm_mcp_server_free(srv); |
| 9379 | return ok2 ? IDX773_OK : IDX773_SECOND_FAILED; |
| 9380 | } |
| 9381 | #endif /* !_WIN32 */ |
| 9382 | |
| 9383 | /* #898: the SEQUENTIAL pipeline emitted malformed JSON for brokered |
no test coverage detected