Skip to content

Commit 8760fb3

Browse files
Update test.c
1 parent 383fd26 commit 8760fb3

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

code/logic/test.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -936,6 +936,35 @@ int fossil_pizza_run_all(fossil_pizza_engine_t* engine) {
936936
}
937937

938938
// --- Summary Report ---
939+
const char* fossil_test_summary_feedback(const fossil_pizza_score_t* score) {
940+
if (!score) return "No results available.";
941+
942+
static char message[256];
943+
int total = score->passed + score->failed + score->skipped +
944+
score->timeout + score->unexpected + score->empty;
945+
946+
if (total == 0) return "No tests were run.";
947+
948+
double pass_rate = (double)score->passed / total * 100.0;
949+
double fail_ratio = (double)(score->failed + score->unexpected) / total;
950+
951+
if (pass_rate == 100.0) {
952+
snprintf(message, sizeof(message), "Perfect run! All tests passed. Great job.");
953+
} else if (fail_ratio > 0.5) {
954+
snprintf(message, sizeof(message), "High failure rate detected. Investigate the failing and unexpected tests.");
955+
} else if (score->timeout > 0) {
956+
snprintf(message, sizeof(message), "Some tests timed out. Check for infinite loops or delays.");
957+
} else if (score->skipped > 0) {
958+
snprintf(message, sizeof(message), "Some tests were skipped. Make sure all dependencies are in place.");
959+
} else if (score->empty > 0 && score->passed == 0) {
960+
snprintf(message, sizeof(message), "All tests are empty or unimplemented.");
961+
} else {
962+
snprintf(message, sizeof(message), "Test run completed. Review failures and improve reliability.");
963+
}
964+
965+
return message;
966+
}
967+
939968
void fossil_pizza_summary_timestamp(const fossil_pizza_engine_t* engine) {
940969
if (!engine) return;
941970

@@ -1208,6 +1237,8 @@ void fossil_pizza_summary(const fossil_pizza_engine_t* engine) {
12081237
fossil_pizza_summary_heading(engine);
12091238
fossil_pizza_summary_scoreboard(engine);
12101239
fossil_pizza_summary_timestamp(engine);
1240+
const char* msg = fossil_test_summary_feedback(&engine->score);
1241+
pizza_io_printf("\n{bold}{blue}Feedback:{reset} %s\n", msg);
12111242
}
12121243

12131244
// --- End / Cleanup ---

0 commit comments

Comments
 (0)