// File: WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: testing::internal::PrettyUnitTestResultPrinter::OnTestIterationStart(testing::UnitTest const&, int)
void PrettyUnitTestResultPrinter::OnTestIterationStart(
    const UnitTest& unit_test, int iteration) {
  if (GTEST_FLAG(repeat) != 1)
    printf("\nRepeating all tests (iteration %d) . . .\n\n", iteration + 1);

  const char* const filter = GTEST_FLAG(filter).c_str();

  // Prints the filter if it's not *.  This reminds the user that some
  // tests may be skipped.
  if (!String::CStringEquals(filter, kUniversalFilter)) {
    ColoredPrintf(COLOR_YELLOW,
                  "Note: %s filter = %s\n", GTEST_NAME_, filter);
  }

  if (internal::ShouldShard(kTestTotalShards, kTestShardIndex, false)) {
    const Int32 shard_index = Int32FromEnvOrDie(kTestShardIndex, -1);
    ColoredPrintf(COLOR_YELLOW,
                  "Note: This is test shard %d of %s.\n",
                  static_cast<int>(shard_index) + 1,
                  internal::posix::GetEnv(kTestTotalShards));
  }

  if (GTEST_FLAG(shuffle)) {
    ColoredPrintf(COLOR_YELLOW,
                  "Note: Randomizing tests' orders with a seed of %d .\n",
                  unit_test.random_seed());
  }

  ColoredPrintf(COLOR_GREEN,  "[==========] ");
  printf("Running %s from %s.\n",
         FormatTestCount(unit_test.test_to_run_count()).c_str(),
         FormatTestCaseCount(unit_test.test_case_to_run_count()).c_str());
  fflush(stdout);
}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x90(%rsp)
movq %rsi, 0x88(%rsp)
movl %edx, 0x84(%rsp)
cmpl $0x1, 0x45cab(%rip)     # 0x65c10
je 0x1ff7f
movl 0x84(%rsp), %esi
addl $0x1, %esi
leaq 0x2d0a7(%rip), %rdi     # 0x4d01f
movb $0x0, %al
callq 0xe090
leaq 0x45c3a(%rip), %rdi     # 0x65bc0
callq 0xe370
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rdi
leaq 0x2b9f4(%rip), %rsi     # 0x4b990
callq 0x19280
testb $0x1, %al
jne 0x1ffc4
movq 0x78(%rsp), %rcx
movl $0x3, %edi
leaq 0x2d095(%rip), %rsi     # 0x4d04b
leaq 0x2cbd3(%rip), %rdx     # 0x4cb90
movb $0x0, %al
callq 0x1fcc0
leaq 0x2b9e5(%rip), %rdi     # 0x4b9b0
leaq 0x2b9fe(%rip), %rsi     # 0x4b9d0
xorl %edx, %edx
callq 0x20140
testb $0x1, %al
jne 0x1ffdf
jmp 0x20025
leaq 0x2b9ea(%rip), %rdi     # 0x4b9d0
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x20830
movl %eax, 0x74(%rsp)
movl 0x74(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x20(%rsp)
leaq 0x2b9aa(%rip), %rdi     # 0x4b9b0
callq 0x36880
movl 0x20(%rsp), %edx
movq %rax, %rcx
movl $0x3, %edi
leaq 0x2d043(%rip), %rsi     # 0x4d061
movb $0x0, %al
callq 0x1fcc0
testb $0x1, 0x45be9(%rip)     # 0x65c15
je 0x20050
movq 0x88(%rsp), %rdi
callq 0x20920
movl %eax, %edx
movl $0x3, %edi
leaq 0x2d03c(%rip), %rsi     # 0x4d085
movb $0x0, %al
callq 0x1fcc0
leaq 0x2d063(%rip), %rsi     # 0x4d0ba
xorl %eax, %eax
movl $0x2, %edi
callq 0x1fcc0
movq 0x88(%rsp), %rdi
callq 0x20980
movl %eax, %esi
leaq 0x50(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x20940
movq 0x8(%rsp), %rdi
callq 0xe370
movq %rax, 0x10(%rsp)
movq 0x88(%rsp), %rdi
callq 0x209e0
movl %eax, 0x1c(%rsp)
jmp 0x200a3
movl 0x1c(%rsp), %esi
leaq 0x30(%rsp), %rdi
callq 0x209a0
jmp 0x200b3
leaq 0x30(%rsp), %rdi
callq 0xe370
movq 0x10(%rsp), %rsi
movq %rax, %rdx
leaq 0x2cffc(%rip), %rdi     # 0x4d0c8
xorl %eax, %eax
callq 0xe090
jmp 0x200d5
leaq 0x30(%rsp), %rdi
callq 0xf698
leaq 0x50(%rsp), %rdi
callq 0xf698
movq 0x44e90(%rip), %rax     # 0x64f80
movq (%rax), %rdi
callq 0xecc0
addq $0x98, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x28(%rsp)
movl %eax, 0x24(%rsp)
jmp 0x20128
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x28(%rsp)
movl %eax, 0x24(%rsp)
leaq 0x30(%rsp), %rdi
callq 0xf698
leaq 0x50(%rsp), %rdi
callq 0xf698
movq 0x28(%rsp), %rdi
callq 0xf410
nopl (%rax)