+static void
+unit_test_suite_count_tcs_on_setup_fail(struct unit_test_suite *suite,
+ int test_success, unsigned int *sub_ts_failed,
+ unsigned int *sub_ts_skipped, unsigned int *sub_ts_total)
+{
+ struct unit_test_case tc;
+ struct unit_test_suite *ts;
+ int i;
+
+ FOR_EACH_SUITE_TESTSUITE(i, suite, ts) {
+ unit_test_suite_count_tcs_on_setup_fail(
+ ts, test_success, sub_ts_failed,
+ sub_ts_skipped, sub_ts_total);
+ suite->total += ts->total;
+ suite->failed += ts->failed;
+ suite->skipped += ts->skipped;
+ if (ts->failed)
+ (*sub_ts_failed)++;
+ else
+ (*sub_ts_skipped)++;
+ (*sub_ts_total)++;
+ }
+ FOR_EACH_SUITE_TESTCASE(i, suite, tc) {
+ suite->total++;
+ if (!tc.enabled || test_success == TEST_SKIPPED)
+ suite->skipped++;
+ else
+ suite->failed++;
+ }
+}
+
+static void
+unit_test_suite_reset_counts(struct unit_test_suite *suite)
+{
+ struct unit_test_suite *ts;
+ int i;
+
+ FOR_EACH_SUITE_TESTSUITE(i, suite, ts)
+ unit_test_suite_reset_counts(ts);
+ suite->total = 0;
+ suite->executed = 0;
+ suite->succeeded = 0;
+ suite->skipped = 0;
+ suite->failed = 0;
+ suite->unsupported = 0;
+}