| 856 | "ASYNC_CALLS", NULL}; |
| 857 | |
| 858 | static void dump_edge_histogram(cbm_store_t *store, const char *project) { |
| 859 | if (!store) { |
| 860 | fprintf(stderr, " └─ (no graph DB)\n"); |
| 861 | return; |
| 862 | } |
| 863 | char line[640] = {0}; |
| 864 | for (int i = 0; ALL_EDGE_TYPES[i]; i++) { |
| 865 | int c = cbm_store_count_edges_by_type(store, project, ALL_EDGE_TYPES[i]); |
| 866 | if (c > 0 && strlen(line) < sizeof(line) - 48) { |
| 867 | char one[64]; |
| 868 | snprintf(one, sizeof(one), "%s=%d ", ALL_EDGE_TYPES[i], c); |
| 869 | strncat(line, one, sizeof(line) - strlen(line) - 1); |
| 870 | } |
| 871 | } |
| 872 | fprintf(stderr, " └─ edges produced: [%s]\n", line[0] ? line : "(none)"); |
| 873 | } |
| 874 | |
| 875 | /* Index `files`, assert the named edge type appears at least `floor` times. |
| 876 | * On failure, dump the full edge histogram so a regression is diagnosable. */ |
no test coverage detected