void SDKUnitTestListener::OnTestIterationEnd(const UnitTest& unit_test, int /*iteration*/) {
	// Print stored test results
	PrintTestResults();

	// Print final results
	Msg( "[==========] ");
	Msg("%s from %s ran.",
		FormatTestCount(unit_test.test_to_run_count()).c_str(),
		FormatTestCaseCount(unit_test.test_case_to_run_count()).c_str());
	if (GTEST_FLAG(print_time)) {
		Msg(" (%s ms total)",
			internal::StreamableToString(unit_test.elapsed_time()).c_str());
	}
	Msg("\n");
	Msg( "[  PASSED  ] ");
	Msg("%s.\n", FormatTestCount(unit_test.successful_test_count()).c_str());

	int num_failures = unit_test.failed_test_count();
	if (!unit_test.Passed()) {
		const int failed_test_count = unit_test.failed_test_count();
		Msg( "[  FAILED  ] ");
		Msg("%s, listed below:\n", FormatTestCount(failed_test_count).c_str());
		PrintFailedTests(unit_test);
		Msg("\n%2d FAILED %s\n", num_failures, num_failures == 1 ? "TEST" : "TESTS");
	}

	int num_disabled = unit_test.disabled_test_count();
	if (num_disabled && !GTEST_FLAG(also_run_disabled_tests)) {
		if (!num_failures) {
			Msg("\n");  // Add a spacer if no FAILURE banner is displayed.
		}
		Msg( "  YOU HAVE %d DISABLED %s\n\n",
			num_disabled,
			num_disabled == 1 ? "TEST" : "TESTS");
	}
}
// Called after all tests ended
void AlternatePrinter::OnTestProgramEnd(const UnitTest& unit_test) {
	fprintf(stdout, "TEST %s\n\n", unit_test.Passed() ? "PASSED" : "FAILED");
	fflush(stdout);
}