// File: /workspace/github_cpp_makefile_star2_O3/halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::OutputJsonTestInfo(std::ostream*, char const*, testing::TestInfo const&)
void JsonUnitTestResultPrinter::OutputJsonTestInfo(::std::ostream* stream,
                                                   const char* test_suite_name,
                                                   const TestInfo& test_info) {
  const TestResult& result = *test_info.result();
  const std::string kTestsuite = "testcase";
  const std::string kIndent = Indent(10);

  *stream << Indent(8) << "{\n";
  OutputJsonKey(stream, kTestsuite, "name", test_info.name(), kIndent);

  if (test_info.value_param() != nullptr) {
    OutputJsonKey(stream, kTestsuite, "value_param", test_info.value_param(),
                  kIndent);
  }
  if (test_info.type_param() != nullptr) {
    OutputJsonKey(stream, kTestsuite, "type_param", test_info.type_param(),
                  kIndent);
  }

  OutputJsonKey(stream, kTestsuite, "file", test_info.file(), kIndent);
  OutputJsonKey(stream, kTestsuite, "line", test_info.line(), kIndent, false);
  if (GTEST_FLAG_GET(list_tests)) {
    *stream << "\n" << Indent(8) << "}";
    return;
  } else {
    *stream << ",\n";
  }

  OutputJsonKey(stream, kTestsuite, "status",
                test_info.should_run() ? "RUN" : "NOTRUN", kIndent);
  OutputJsonKey(stream, kTestsuite, "result",
                test_info.should_run()
                    ? (result.Skipped() ? "SKIPPED" : "COMPLETED")
                    : "SUPPRESSED",
                kIndent);
  OutputJsonKey(stream, kTestsuite, "timestamp",
                FormatEpochTimeInMillisAsRFC3339(result.start_timestamp()),
                kIndent);
  OutputJsonKey(stream, kTestsuite, "time",
                FormatTimeInMillisAsDuration(result.elapsed_time()), kIndent);
  OutputJsonKey(stream, kTestsuite, "classname", test_suite_name, kIndent,
                false);
  *stream << TestPropertiesAsJson(result, kIndent);

  OutputJsonTestResult(stream, result);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1704b(%rip), %rsi     # 0x72481
leaq 0x1704c(%rip), %rdx     # 0x72489
leaq 0x68(%rsp), %rdi
callq 0x1558a
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x48(%rsp), %rdi
movl $0xa, %esi
movl $0x20, %edx
callq 0xd630
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
movl $0x20, %edx
callq 0xd630
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x171c4(%rip), %rsi     # 0x7265e
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b4be
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16fda(%rip), %rsi     # 0x724a7
leaq 0x16fd7(%rip), %rdx     # 0x724ab
callq 0x1558a
movq 0x20(%r15), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x2008e
movq %r12, 0x90(%rsp)
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
leaq 0x38(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0x5b532
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b549
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x48(%r15), %rax
testq %rax, %rax
je 0x5b5ea
cmpq $0x0, (%rax)
je 0x5b5ea
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16f4d(%rip), %rsi     # 0x724bc
leaq 0x16f51(%rip), %rdx     # 0x724c7
callq 0x1558a
movq 0x48(%r15), %rax
testq %rax, %rax
je 0x5b589
movq (%rax), %rsi
jmp 0x5b58b
xorl %esi, %esi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x2008e
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5b5d3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b5ea
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x40(%r15), %rax
testq %rax, %rax
je 0x5b68b
cmpq $0x0, (%rax)
je 0x5b68b
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16eb8(%rip), %rsi     # 0x724c8
leaq 0x16ebb(%rip), %rdx     # 0x724d2
callq 0x1558a
movq 0x40(%r15), %rax
testq %rax, %rax
je 0x5b62a
movq (%rax), %rsi
jmp 0x5b62c
xorl %esi, %esi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x2008e
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5b674
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b68b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1601c(%rip), %rsi     # 0x716b6
leaq 0x16019(%rip), %rdx     # 0x716ba
callq 0x1558a
movq 0x50(%r15), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x2008e
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5b6f2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b709
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16dbb(%rip), %rsi     # 0x724d3
leaq 0x16db8(%rip), %rdx     # 0x724d7
callq 0x1558a
movl 0x70(%r15), %ecx
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x5901a
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b759
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
cmpb $0x1, 0x39199(%rip)     # 0x948f9
jne 0x5b7d3
leaq 0x1395b(%rip), %rsi     # 0x6f0c4
movl $0x1, %edx
movq %rbx, %rdi
callq 0xd600
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
movl $0x8, %esi
movl $0x20, %edx
callq 0xd630
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x16ee2(%rip), %rsi     # 0x72688
movl $0x1, %edx
movq %rax, %rdi
callq 0xd600
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5bb21
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5bb21
leaq 0x16e99(%rip), %rsi     # 0x72673
movl $0x2, %edx
movq %rbx, %rdi
callq 0xd600
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16c94(%rip), %rsi     # 0x7248a
leaq 0x16c93(%rip), %rdx     # 0x72490
callq 0x1558a
movzbl 0x80(%r15), %eax
leaq 0x16e34(%rip), %rcx     # 0x72645
leaq 0x16e2a(%rip), %rsi     # 0x72642
testq %rax, %rax
cmovneq %rcx, %rsi
leaq 0x28(%rsp), %rdi
movq %r12, (%rdi)
xorq $0x1, %rax
leaq (%rax,%rax,2), %rax
leaq (%rsi,%rax), %rdx
addq $0x3, %rdx
callq 0x1558a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5b875
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b88c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16bf6(%rip), %rsi     # 0x72491
leaq 0x16bf5(%rip), %rdx     # 0x72497
callq 0x1558a
leaq 0x90(%r15), %rdi
cmpb $0x1, 0x80(%r15)
movq %rdi, 0x88(%rsp)
jne 0x5b8db
callq 0x4ffc6
leaq 0x16d7d(%rip), %rcx     # 0x72649
leaq 0x16d62(%rip), %r13     # 0x72635
testb %al, %al
cmovneq %rcx, %r13
jmp 0x5b8e2
leaq 0x16d6f(%rip), %r13     # 0x72651
leaq 0x28(%rsp), %rbp
movq %r12, (%rbp)
movq %r13, %rdi
callq 0xd210
leaq (%rax,%r13), %rdx
movq %rbp, %rdi
movq %r13, %rsi
callq 0x1558a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x78(%rsp), %r13
leaq 0x58(%rsp), %rbp
je 0x5b945
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b95c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16b07(%rip), %rsi     # 0x72472
leaq 0x16b09(%rip), %rdx     # 0x7247b
callq 0x1558a
movq 0x100(%r15), %rsi
leaq 0x28(%rsp), %rdi
callq 0x5a1e8
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5b9c1
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5b9d8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x15c47(%rip), %rsi     # 0x7162e
leaq 0x15c44(%rip), %rdx     # 0x71632
callq 0x1558a
movq 0x108(%r15), %rsi
leaq 0x28(%rsp), %rdi
callq 0x5a14a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5ba3d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5ba54
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x16a3f(%rip), %rsi     # 0x724a2
leaq 0x16a41(%rip), %rdx     # 0x724ab
callq 0x1558a
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq 0x90(%rsp), %rsi
callq 0x2008e
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x58e12
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5babc
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
movq 0x88(%rsp), %r15
je 0x5badb
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %r15, %rsi
callq 0x5ad4a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5bb16
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5af68
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5bb38
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x5bb4f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5bbdc
jmp 0x5bb99
jmp 0x5bbdc
jmp 0x5bb99
jmp 0x5bbd7
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bb99
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bb99
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bb99
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bb99
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bb99
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bbd7
jmp 0x5bbdc
jmp 0x5bbdc
jmp 0x5bbd7
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x5bbdf
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5bbdf
jmp 0x5bbdc
jmp 0x5bbd7
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x5bba6
jmp 0x5bbdf
jmp 0x5bbdc
jmp 0x5bbd7
jmp 0x5bbd7
movq %rax, %rbx
jmp 0x5bc12
movq %rax, %rbx
jmp 0x5bbf6
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5bbf6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5bc12
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x5bc2e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70