// File: halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::BriefUnitTestResultPrinter::OnTestIterationEnd(testing::UnitTest const&, int)
void BriefUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
                                                    int /*iteration*/) {
  ColoredPrintf(GTestColor::kGreen, "[==========] ");
  printf("%s from %s ran.",
         FormatTestCount(unit_test.test_to_run_count()).c_str(),
         FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str());
  if (GTEST_FLAG_GET(print_time)) {
    printf(" (%s ms total)",
           internal::StreamableToString(unit_test.elapsed_time()).c_str());
  }
  printf("\n");
  ColoredPrintf(GTestColor::kGreen, "[  PASSED  ] ");
  printf("%s.\n", FormatTestCount(unit_test.successful_test_count()).c_str());

  const int skipped_test_count = unit_test.skipped_test_count();
  if (skipped_test_count > 0) {
    ColoredPrintf(GTestColor::kGreen, "[  SKIPPED ] ");
    printf("%s.\n", FormatTestCount(skipped_test_count).c_str());
  }

  int num_disabled = unit_test.reportable_disabled_test_count();
  if (num_disabled && !GTEST_FLAG_GET(also_run_disabled_tests)) {
    if (unit_test.Passed()) {
      printf("\n");  // Add a spacer if no FAILURE banner is displayed.
    }
    ColoredPrintf(GTestColor::kYellow, "  YOU HAVE %d DISABLED %s\n\n",
                  num_disabled, num_disabled == 1 ? "TEST" : "TESTS");
  }
  // Ensure that Google Test output is printed before, e.g., heapchecker output.
  fflush(stdout);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
leaq 0x41a09(%rip), %rsi     # 0xcebe6
xorl %eax, %eax
movl $0x2, %edi
callq 0x8b660
movq -0x10(%rbp), %rdi
callq 0x8bf70
movl %eax, %esi
leaq -0x38(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x8bf30
movq -0xf0(%rbp), %rdi
callq 0x102c0
movq %rax, -0xe8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x8bfe0
movl %eax, -0xe0(%rbp)
jmp 0x8d228
movl -0xe0(%rbp), %esi
leaq -0x58(%rbp), %rdi
callq 0x8bfa0
jmp 0x8d239
leaq -0x58(%rbp), %rdi
callq 0x102c0
movq -0xe8(%rbp), %rsi
movq %rax, %rdx
leaq 0x41b0e(%rip), %rdi     # 0xced61
xorl %eax, %eax
callq 0x10090
jmp 0x8d25c
leaq -0x58(%rbp), %rdi
callq 0x10fc8
leaq -0x38(%rbp), %rdi
callq 0x10fc8
testb $0x1, 0x8a8cc(%rip)     # 0x117b41
je 0x8d320
movq -0x10(%rbp), %rdi
callq 0x8cfb0
movq %rax, -0x90(%rbp)
leaq -0x88(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
leaq -0x90(%rbp), %rsi
callq 0xa90d0
movq -0xf8(%rbp), %rdi
callq 0x102c0
movq %rax, %rsi
leaq 0x41ab6(%rip), %rdi     # 0xced71
xorl %eax, %eax
callq 0x10090
jmp 0x8d2c4
leaq -0x88(%rbp), %rdi
callq 0x10fc8
jmp 0x8d320
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x8d2f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x10fc8
leaq -0x38(%rbp), %rdi
callq 0x10fc8
jmp 0x8d4db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x10fc8
jmp 0x8d4db
leaq 0x3e0cf(%rip), %rdi     # 0xcb3f6
xorl %eax, %eax
movb %al, -0xf9(%rbp)
callq 0x10090
movb -0xf9(%rbp), %al
leaq 0x41a3f(%rip), %rsi     # 0xced80
movl $0x2, %edi
callq 0x8b660
movq -0x10(%rbp), %rdi
callq 0x8cfe0
movl %eax, %esi
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x8bf30
movq -0x108(%rbp), %rdi
callq 0x102c0
movq %rax, %rsi
movb -0xf9(%rbp), %al
leaq 0x41827(%rip), %rdi     # 0xcebac
callq 0x10090
jmp 0x8d38c
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
movq -0x10(%rbp), %rdi
callq 0x8cc30
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jle 0x8d451
leaq 0x418c3(%rip), %rsi     # 0xcec7e
xorl %eax, %eax
movb %al, -0x109(%rbp)
movl $0x2, %edi
callq 0x8b660
movl -0xb4(%rbp), %esi
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x8bf30
movq -0x118(%rbp), %rdi
callq 0x102c0
movq %rax, %rsi
movb -0x109(%rbp), %al
leaq 0x417aa(%rip), %rdi     # 0xcebac
callq 0x10090
jmp 0x8d409
leaq -0xd8(%rbp), %rdi
callq 0x10fc8
jmp 0x8d451
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
jmp 0x8d4db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x10fc8
jmp 0x8d4db
movq -0x10(%rbp), %rdi
callq 0x8d040
movl %eax, -0xdc(%rbp)
cmpl $0x0, -0xdc(%rbp)
je 0x8d4c3
testb $0x1, 0x8a663(%rip)     # 0x117ad3
jne 0x8d4c3
movq -0x10(%rbp), %rdi
callq 0x8d010
testb $0x1, %al
jne 0x8d481
jmp 0x8d48f
leaq 0x3df6e(%rip), %rdi     # 0xcb3f6
movb $0x0, %al
callq 0x10090
movl -0xdc(%rbp), %edx
movl -0xdc(%rbp), %esi
leaq 0x4186e(%rip), %rcx     # 0xced10
leaq 0x41862(%rip), %rax     # 0xced0b
cmpl $0x1, %esi
cmoveq %rax, %rcx
movl $0x3, %edi
leaq 0x418d2(%rip), %rsi     # 0xced8e
movb $0x0, %al
callq 0x8b660
movq 0x89ab6(%rip), %rax     # 0x116f80
movq (%rax), %rdi
callq 0x10930
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x10e00
nopw %cs:(%rax,%rax)