+ printf(" =====================================================================%s\n",
+ number_of_failed_tests ? "== FAILED": number_of_interrupted_tests ? "==== INTR" : "====== OK");
+
+
+ printf(" Summary: Test(s): %.0f%% ok (%d test(s): %d ok",
+ (number_of_tests ? (1-((double)number_of_failed_tests + (double)number_of_interrupted_tests)/(double)number_of_tests)*100.0 : 100.0),
+ number_of_tests, number_of_successeded_tests);
+
+ if(number_of_failed_tests > 0)
+ printf(", %d failed", number_of_failed_tests);
+
+ if(number_of_interrupted_tests > 0)
+ printf(", %d interrupted)", number_of_interrupted_tests);
+
+ printf(")\n\n");
+
+
+ total_of_tests += number_of_tests;
+ total_of_failed_tests += number_of_failed_tests;
+ total_of_interrupted_tests += number_of_interrupted_tests;
+ total_of_successeded_tests += number_of_successeded_tests;
+ }
+
+ /* suites */
+
+ total_of_units = number_of_units;
+
+ total_of_failed_suites = total_of_successeded_suites = total_of_interrupted_suites = 0;
+
+ total_of_suites = vector_get_size(unit->suites);
+
+ for(k = 0; k < total_of_suites; k++)
+ {
+ suite = vector_get_at(unit->suites, k);
+
+ display_title(suite->description);
+
+ number_of_tests_of_suite = number_of_interrupted_tests_of_suite = number_of_failed_tests_of_suite = number_of_successeded_tests_of_suite = 0;
+
+ number_of_interrupted_units = number_of_failed_units = number_of_successeded_units = 0;
+
+ number_of_units = vector_get_size(suite->includes);
+
+ for(i = 0; i < number_of_units; i++)
+ {
+ number_of_interrupted_tests = number_of_failed_tests = number_of_successeded_tests = 0;
+
+ number_of_tests = vector_get_size(include->commands);
+
+ for(j = 0; j < vector_get_size(include->commands); j++)
+ {
+ command = vector_get_at(include->commands, j);
+
+ if(command->status == cs_interrupted)
+ number_of_interrupted_tests++;
+ else if(command->status == cs_failed)
+ number_of_failed_tests++;
+ else if(command->status == cs_successeded)
+ number_of_successeded_tests++;
+
+ }
+
+
+ include = vector_get_at(suite->includes, i);
+ asprintf(&p," Unit: %s ............................................................................", include->description ? include->description : include->fstream->name);
+
+ p[70] = '\0';
+ printf("%s", p);
+ free(p);
+
+ if(number_of_failed_tests > 0)
+ {
+ number_of_failed_units++;
+ printf(".. failed\n");
+ }
+ else if(number_of_interrupted_tests > 0)
+ {
+ number_of_interrupted_units++;
+ printf("interrupt\n");
+ }
+ else
+ {
+ number_of_successeded_units++;
+ printf(".... ..ok\n");
+ }
+
+ number_of_interrupted_tests_of_suite += number_of_interrupted_tests;
+ number_of_failed_tests_of_suite += number_of_failed_tests;
+ number_of_successeded_tests_of_suite += number_of_successeded_tests;
+
+ number_of_tests_of_suite += number_of_tests;
+
+ total_of_tests += number_of_tests;
+ total_of_failed_tests += number_of_failed_tests;
+ total_of_interrupted_tests += number_of_interrupted_tests;
+ total_of_successeded_tests += number_of_successeded_tests;
+
+ if(want_detail_summary)
+ {
+ for(j = 0; j < vector_get_size(include->commands); j++)
+ {
+ command = vector_get_at(include->commands, j);
+
+ printf(" %s: %s [%s]\n",
+ command->status == cs_interrupted ? "INTR "
+ : command->status == cs_failed ? "FAILED"
+ : command->status == cs_successeded ? "PASS "
+ : "UNKNWN",
+ command->context->command_line,
+ command->context->line);
+
+ command_display_status(command);
+
+ }
+
+
+ }
+
+ }
+
+
+
+ printf(" =====================================================================%s\n",
+ number_of_failed_tests_of_suite ? "== FAILED": number_of_interrupted_tests_of_suite ? "==== INTR" : "====== OK");
+
+ if(number_of_failed_tests_of_suite > 0)
+ total_of_failed_suites++;
+ else if(number_of_interrupted_tests_of_suite)
+ total_of_interrupted_suites++;
+ else
+ total_of_successeded_suites++;
+
+ total_of_failed_units += number_of_failed_units;
+ total_of_interrupted_units += number_of_interrupted_units;
+ total_of_successeded_units += number_of_successeded_units;
+
+ total_of_units += number_of_units;
+
+ printf(" Summary: Unit(s): %.0f%% ok (%d unit(s): %d ok",
+ (number_of_units ? (1-((double)number_of_failed_units + (double)number_of_interrupted_units)/(double)number_of_units)*100.0 : 100.0),
+ number_of_units, number_of_successeded_units);
+
+ if(number_of_failed_units > 0)
+ printf(", %d failed", number_of_failed_units);
+
+ if(number_of_interrupted_units > 0)
+ printf(", %d interrupted)", number_of_interrupted_units);
+
+ printf(")\n");
+
+ printf(" Test(s): %.0f%% ok (%d test(s): %d ok",
+ (number_of_tests_of_suite ? (1-((double)number_of_failed_tests_of_suite + (double)number_of_interrupted_tests_of_suite)/(double)number_of_tests_of_suite)*100.0 : 100.0),
+ number_of_tests_of_suite, number_of_successeded_tests_of_suite);
+
+ if(number_of_failed_tests_of_suite > 0)
+ printf(", %d failed", number_of_failed_tests_of_suite);
+
+ if(number_of_interrupted_tests_of_suite > 0)
+ printf(", %d interrupted)", number_of_interrupted_tests_of_suite);
+
+ printf(")\n\n");