// File: /workspace/github_cpp_makefile_star2_O3/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 $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x167df(%rip), %rsi     # 0x7243c
leaq 0x167e1(%rip), %rdx     # 0x72445
leaq 0x68(%rsp), %rdi
callq 0x1558a
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x48(%rsp), %rdi
movl $0x6, %esi
movl $0x20, %edx
callq 0xd630
leaq 0x10(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rsp, %rdi
movl $0x4, %esi
movl $0x20, %edx
callq 0xd630
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x169a0(%rip), %rsi     # 0x7265e
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bce1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x167b9(%rip), %rsi     # 0x724a7
leaq 0x167b6(%rip), %rdx     # 0x724ab
callq 0x1558a
movq 0x8(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x27(%rsp), %rdx
callq 0x2008e
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
leaq 0x38(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x5bd48
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bd5e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x1585d(%rip), %rsi     # 0x715c8
leaq 0x1585b(%rip), %rdx     # 0x715cd
callq 0x1558a
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
cmpq %rdx, %rax
je 0x5bdb0
xorl %esi, %esi
xorl %ecx, %ecx
movq (%rax), %rdi
movzbl 0x83(%rdi), %r8d
xorl $0x1, %r8d
cmpb $0x0, 0x82(%rdi)
cmovel %esi, %r8d
addl %r8d, %ecx
addq $0x8, %rax
cmpq %rdx, %rax
jne 0x5bd88
jmp 0x5bdb2
xorl %ecx, %ecx
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5901a
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bde3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
cmpb $0x0, 0x38b0f(%rip)     # 0x948f9
jne 0x5c049
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x170fe(%rip), %rsi     # 0x72efb
leaq 0x170ff(%rip), %rdx     # 0x72f03
callq 0x1558a
movq %r14, %rdi
callq 0x4c6f0
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5901a
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5be44
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x16609(%rip), %rsi     # 0x7245a
leaq 0x1660a(%rip), %rdx     # 0x72462
callq 0x1558a
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
xorl %ecx, %ecx
cmpq %rdx, %rax
je 0x5be95
movq (%rax), %rsi
cmpb $0x1, 0x82(%rsi)
movl $0x0, %edi
jne 0x5be8d
testb $0x1, 0x83(%rsi)
jne 0x5be8d
movzbl 0x81(%rsi), %edi
addl %edi, %ecx
addq $0x8, %rax
jmp 0x5be67
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5901a
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bec6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x16598(%rip), %rsi     # 0x7246b
leaq 0x16597(%rip), %rdx     # 0x72471
callq 0x1558a
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x5901a
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bf12
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x16553(%rip), %rsi     # 0x72472
leaq 0x16555(%rip), %rdx     # 0x7247b
callq 0x1558a
movq 0x78(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x5a1e8
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x5bf70
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bf86
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x1569b(%rip), %rsi     # 0x7162e
leaq 0x15698(%rip), %rdx     # 0x71632
callq 0x1558a
movq 0x80(%r14), %rsi
leaq 0x28(%rsp), %rdi
callq 0x5a14a
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x5bfe4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bffa
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x88(%r14), %rsi
movq %rsp, %rdi
leaq 0x48(%rsp), %rdx
callq 0x5ad4a
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x1664d(%rip), %rsi     # 0x72673
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5c049
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %r15
leaq 0x1660b(%rip), %rsi     # 0x72670
movl $0x1, %edx
movq %rax, %rdi
callq 0xd600
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq %r15, %rdi
callq 0xd600
leaq 0x165a4(%rip), %rsi     # 0x7262f
movl $0x5, %edx
movq %rax, %rdi
callq 0xd600
movq 0x30(%r14), %rax
movq 0x38(%r14), %rcx
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
testl %edx, %edx
jle 0x5c12a
xorl %r12d, %r12d
leaq 0x165bb(%rip), %r15     # 0x72673
xorl %esi, %esi
movq 0x48(%r14), %rdx
movl (%rdx,%r12,4), %edx
movq (%rax,%rdx,8), %rdx
cmpb $0x1, 0x82(%rdx)
jne 0x5c115
testb $0x1, 0x83(%rdx)
jne 0x5c115
testb $0x1, %sil
je 0x5c0fe
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xd600
movq 0x30(%r14), %rax
movq 0x48(%r14), %rcx
movl (%rcx,%r12,4), %ecx
movq (%rax,%rcx,8), %rdx
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq 0x5b40c
movq 0x30(%r14), %rax
movq 0x38(%r14), %rcx
movb $0x1, %sil
incq %r12
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
movslq %edx, %rdx
cmpq %rdx, %r12
jl 0x5c0ba
leaq 0x12f93(%rip), %rsi     # 0x6f0c4
movl $0x1, %edx
movq %rbx, %rdi
callq 0xd600
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %rbx
leaq 0x164e5(%rip), %rsi     # 0x7263f
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq %rsp, %rdi
movq %rbp, (%rdi)
movl $0x4, %esi
movl $0x20, %edx
callq 0xd630
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x164f4(%rip), %rsi     # 0x72688
movl $0x1, %edx
movq %rax, %rdi
callq 0xd600
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5c1b7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x5c1ce
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x5c1ea
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5c277
jmp 0x5c204
jmp 0x5c258
jmp 0x5c277
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
jne 0x5c23c
jmp 0x5c25b
jmp 0x5c258
jmp 0x5c277
jmp 0x5c258
jmp 0x5c277
jmp 0x5c258
jmp 0x5c277
jmp 0x5c277
jmp 0x5c277
jmp 0x5c258
jmp 0x5c258
jmp 0x5c258
jmp 0x5c277
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5c25b
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5c25b
jmp 0x5c258
jmp 0x5c277
jmp 0x5c277
movq %rax, %rbx
jmp 0x5c291
jmp 0x5c258
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x5c27a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5c27a
jmp 0x5c277
jmp 0x5c277
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x5c291
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x5c2ad
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70
nop