// File: /workspace/github_cpp_makefile_star2_O2/halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonTestSuite(std::ostream*, testing::TestSuite const&)
void JsonUnitTestResultPrinter::PrintJsonTestSuite(
    std::ostream* stream, const TestSuite& test_suite) {
  const std::string kTestsuite = "testsuite";
  const std::string kIndent = Indent(6);

  *stream << Indent(4) << "{\n";
  OutputJsonKey(stream, kTestsuite, "name", test_suite.name(), kIndent);
  OutputJsonKey(stream, kTestsuite, "tests", test_suite.reportable_test_count(),
                kIndent);
  if (!GTEST_FLAG_GET(list_tests)) {
    OutputJsonKey(stream, kTestsuite, "failures",
                  test_suite.failed_test_count(), kIndent);
    OutputJsonKey(stream, kTestsuite, "disabled",
                  test_suite.reportable_disabled_test_count(), kIndent);
    OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent);
    OutputJsonKey(
        stream, kTestsuite, "timestamp",
        FormatEpochTimeInMillisAsRFC3339(test_suite.start_timestamp()),
        kIndent);
    OutputJsonKey(stream, kTestsuite, "time",
                  FormatTimeInMillisAsDuration(test_suite.elapsed_time()),
                  kIndent, false);
    *stream << TestPropertiesAsJson(test_suite.ad_hoc_test_result(), kIndent)
            << ",\n";
  }

  *stream << kIndent << "\"" << kTestsuite << "\": [\n";

  bool comma = false;
  for (int i = 0; i < test_suite.total_test_count(); ++i) {
    if (test_suite.GetTestInfo(i)->is_reportable()) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      OutputJsonTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
    }
  }
  *stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x1486a(%rip), %rsi     # 0x5c47c
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x1337a
leaq 0x58(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x46dae
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x46dae
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0xd4e0
leaq 0x14a4f(%rip), %rsi     # 0x5c69e
movq %rax, %rdi
callq 0xd550
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x1487f(%rip), %rsi     # 0x5c4e7
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x1337a
movq 0x8(%r14), %rsi
leaq 0x38(%rsp), %rdi
leaq 0x37(%rsp), %rdx
callq 0x1337a
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x58(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x38(%rsp), %rdi
callq 0xdbe8
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x13943(%rip), %rsi     # 0x5b608
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1337a
movq %r14, %rdi
callq 0x3d522
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x58(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
movl %eax, %ecx
callq 0x461f2
leaq 0x10(%rsp), %rdi
callq 0xdbe8
cmpb $0x0, 0x3cc1f(%rip)     # 0x84929
jne 0x47ec5
leaq 0x15224(%rip), %rsi     # 0x5cf3b
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1337a
movq %r14, %rdi
callq 0x3d4a4
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x58(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
movl %eax, %ecx
callq 0x461f2
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x1473e(%rip), %rsi     # 0x5c49a
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1337a
movq %r14, %rdi
callq 0x3d4c8
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x58(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
movl %eax, %ecx
callq 0x461f2
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x1470a(%rip), %rsi     # 0x5c4ab
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1337a
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x58(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x461f2
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x146d4(%rip), %rsi     # 0x5c4b2
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x1337a
movq 0x78(%r14), %rsi
leaq 0x38(%rsp), %rdi
callq 0x46e3a
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x58(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x38(%rsp), %rdi
callq 0xdbe8
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x13838(%rip), %rsi     # 0x5b66e
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x1337a
movq 0x80(%r14), %rsi
leaq 0x38(%rsp), %rdi
callq 0x46dc6
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x58(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x46060
leaq 0x38(%rsp), %rdi
callq 0xdbe8
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x88(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x47220
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0xd4e0
leaq 0x14800(%rip), %rsi     # 0x5c6b3
movq %rax, %rdi
callq 0xd550
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0xd4e0
leaq 0x147d7(%rip), %rsi     # 0x5c6b0
movq %rax, %rdi
callq 0xd550
leaq 0x78(%rsp), %rsi
movq %rax, %rdi
callq 0xd4e0
leaq 0x1477a(%rip), %rsi     # 0x5c66f
movq %rax, %rdi
callq 0xd550
xorl %r13d, %r13d
leaq 0x147ac(%rip), %r15     # 0x5c6b3
xorl %ebp, %ebp
movq 0x38(%r14), %rax
subq 0x30(%r14), %rax
shrq $0x3, %rax
cmpl %eax, %ebp
jge 0x47f69
movq %r14, %rdi
movl %ebp, %esi
callq 0x4101a
cmpb $0x1, 0x82(%rax)
jne 0x47f65
testb $0x1, 0x83(%rax)
jne 0x47f65
testb $0x1, %r13b
je 0x47f46
movq %rbx, %rdi
movq %r15, %rsi
callq 0xd550
movq 0x8(%r14), %r12
movq %r14, %rdi
movl %ebp, %esi
callq 0x4101a
movb $0x1, %r13b
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x4764c
incl %ebp
jmp 0x47f09
leaq 0x111e9(%rip), %rsi     # 0x59159
movq %rbx, %rdi
callq 0xd550
leaq 0x58(%rsp), %rsi
movq %rax, %rdi
callq 0xd4e0
leaq 0x146f3(%rip), %rsi     # 0x5c67f
movq %rax, %rdi
callq 0xd550
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x46dae
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0xd4e0
leaq 0x14710(%rip), %rsi     # 0x5c6c8
movq %rax, %rdi
callq 0xd550
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x58(%rsp), %rdi
callq 0xdbe8
leaq 0x78(%rsp), %rdi
callq 0xdbe8
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x48041
jmp 0x48010
jmp 0x4802e
jmp 0x48041
jmp 0x48010
jmp 0x4802e
jmp 0x48041
jmp 0x4802e
jmp 0x48041
jmp 0x48041
jmp 0x48041
jmp 0x48041
jmp 0x4802e
jmp 0x4802e
jmp 0x4802e
jmp 0x48041
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xdbe8
jmp 0x48031
jmp 0x4802e
jmp 0x48041
jmp 0x48041
movq %rax, %rbx
jmp 0x4804e
jmp 0x4802e
jmp 0x4802e
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdbe8
jmp 0x48044
jmp 0x48041
jmp 0x48041
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xdbe8
leaq 0x78(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0