// File: WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: testing::internal::PrettyUnitTestResultPrinter::OnTestIterationEnd(testing::UnitTest const&, int)
void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
                                                     int /*iteration*/) {
  ColoredPrintf(COLOR_GREEN,  "[==========] ");
  printf("%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)) {
    printf(" (%s ms total)",
           internal::StreamableToString(unit_test.elapsed_time()).c_str());
  }
  printf("\n");
  ColoredPrintf(COLOR_GREEN,  "[  PASSED  ] ");
  printf("%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();
    ColoredPrintf(COLOR_RED,  "[  FAILED  ] ");
    printf("%s, listed below:\n", FormatTestCount(failed_test_count).c_str());
    PrintFailedTests(unit_test);
    printf("\n%2d FAILED %s\n", num_failures,
                        num_failures == 1 ? "TEST" : "TESTS");
  }

  int num_disabled = unit_test.reportable_disabled_test_count();
  if (num_disabled && !GTEST_FLAG(also_run_disabled_tests)) {
    if (!num_failures) {
      printf("\n");  // Add a spacer if no FAILURE banner is displayed.
    }
    ColoredPrintf(COLOR_YELLOW,
                  "  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:
subq $0x118, %rsp            # imm = 0x118
movq %rdi, 0x110(%rsp)
movq %rsi, 0x108(%rsp)
movl %edx, 0x104(%rsp)
leaq 0x2be25(%rip), %rsi     # 0x4d0ba
xorl %eax, %eax
movl $0x2, %edi
callq 0x1fcc0
movq 0x108(%rsp), %rdi
callq 0x20980
movl %eax, %esi
leaq 0xe0(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x20940
movq 0x28(%rsp), %rdi
callq 0xe370
movq %rax, 0x30(%rsp)
movq 0x108(%rsp), %rdi
callq 0x209e0
movl %eax, 0x38(%rsp)
jmp 0x212e4
movl 0x38(%rsp), %esi
leaq 0xc0(%rsp), %rdi
callq 0x209a0
jmp 0x212f7
leaq 0xc0(%rsp), %rdi
callq 0xe370
movq 0x30(%rsp), %rsi
movq %rax, %rdx
leaq 0x2be8d(%rip), %rdi     # 0x4d1a0
xorl %eax, %eax
callq 0xe090
jmp 0x2131c
leaq 0xc0(%rsp), %rdi
callq 0xf698
leaq 0xe0(%rsp), %rdi
callq 0xf698
testb $0x1, 0x448cb(%rip)     # 0x65c08
je 0x2140d
movq 0x108(%rsp), %rdi
callq 0x21610
movq %rax, 0x88(%rsp)
leaq 0x90(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0x88(%rsp), %rsi
callq 0x36a20
movq 0x20(%rsp), %rdi
callq 0xe370
movq %rax, %rsi
leaq 0x2be2a(%rip), %rdi     # 0x4d1b0
xorl %eax, %eax
callq 0xe090
jmp 0x2138f
leaq 0x90(%rsp), %rdi
callq 0xf698
jmp 0x2140d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x213d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0xf698
leaq 0xe0(%rsp), %rdi
callq 0xf698
jmp 0x215fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x90(%rsp), %rdi
callq 0xf698
jmp 0x215fd
leaq 0x2bd61(%rip), %rdi     # 0x4d175
xorl %eax, %eax
movb %al, 0x1f(%rsp)
callq 0xe090
movb 0x1f(%rsp), %al
leaq 0x2bd95(%rip), %rsi     # 0x4d1bf
movl $0x2, %edi
callq 0x1fcc0
movq 0x108(%rsp), %rdi
callq 0x21630
movl %eax, %esi
leaq 0x68(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x20940
movq 0x10(%rsp), %rdi
callq 0xe370
movq %rax, %rsi
movb 0x1f(%rsp), %al
leaq 0x2bc16(%rip), %rdi     # 0x4d080
callq 0xe090
jmp 0x21471
leaq 0x68(%rsp), %rdi
callq 0xf698
movq 0x108(%rsp), %rdi
callq 0x21200
movl %eax, 0x64(%rsp)
movq 0x108(%rsp), %rdi
callq 0x21650
testb $0x1, %al
jne 0x21580
movq 0x108(%rsp), %rdi
callq 0x21200
movl %eax, 0x60(%rsp)
leaq 0x2bc8b(%rip), %rsi     # 0x4d144
xorl %eax, %eax
movb %al, 0xf(%rsp)
movl $0x1, %edi
callq 0x1fcc0
movl 0x60(%rsp), %esi
leaq 0x40(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x20940
movq (%rsp), %rdi
callq 0xe370
movq %rax, %rsi
movb 0xf(%rsp), %al
leaq 0x2bcdb(%rip), %rdi     # 0x4d1cd
callq 0xe090
jmp 0x214f9
leaq 0x40(%rsp), %rdi
callq 0xf698
movq 0x108(%rsp), %rdi
callq 0x21090
movl 0x64(%rsp), %esi
movl 0x64(%rsp), %ecx
leaq 0x2bcd6(%rip), %rdx     # 0x4d1f5
leaq 0x2bcca(%rip), %rax     # 0x4d1f0
cmpl $0x1, %ecx
cmoveq %rax, %rdx
leaq 0x2bcac(%rip), %rdi     # 0x4d1e0
movb $0x0, %al
callq 0xe090
jmp 0x21580
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x68(%rsp), %rdi
callq 0xf698
jmp 0x215fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0xf698
jmp 0x215fd
movq 0x108(%rsp), %rdi
callq 0x21670
movl %eax, 0x3c(%rsp)
cmpl $0x0, 0x3c(%rsp)
je 0x215e6
testb $0x1, 0x445fb(%rip)     # 0x65b9a
jne 0x215e6
cmpl $0x0, 0x64(%rsp)
jne 0x215b6
leaq 0x2bbc6(%rip), %rdi     # 0x4d175
movb $0x0, %al
callq 0xe090
movl 0x3c(%rsp), %edx
movl 0x3c(%rsp), %esi
leaq 0x2bc30(%rip), %rcx     # 0x4d1f5
leaq 0x2bc24(%rip), %rax     # 0x4d1f0
cmpl $0x1, %esi
cmoveq %rax, %rcx
movl $0x3, %edi
leaq 0x2bc1c(%rip), %rsi     # 0x4d1fb
movb $0x0, %al
callq 0x1fcc0
movq 0x43993(%rip), %rax     # 0x64f80
movq (%rax), %rdi
callq 0xecc0
addq $0x118, %rsp            # imm = 0x118
retq
movq 0xb8(%rsp), %rdi
callq 0xf410
nopw (%rax,%rax)