// File: /workspace/github_cpp_makefile_star2_O2/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 %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x14e57(%rip), %rsi     # 0x5c4c1
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x1337a
leaq 0x48(%rsp), %rdi
pushq $0xa
popq %rsi
callq 0x46dae
leaq 0x8(%rsp), %rdi
pushq $0x8
popq %rsi
callq 0x46dae
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0xd4e0
leaq 0x14ff7(%rip), %rsi     # 0x5c69e
movq %rax, %rdi
callq 0xd550
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x14e27(%rip), %rsi     # 0x5c4e7
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
movq 0x20(%r15), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1337a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
movq 0x48(%r15), %rax
testq %rax, %rax
je 0x4778e
cmpq $0x0, (%rax)
je 0x4778e
leaq 0x14dd0(%rip), %rsi     # 0x5c4fc
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
movq 0x48(%r15), %rax
testq %rax, %rax
je 0x47749
movq (%rax), %rsi
jmp 0x4774b
xorl %esi, %esi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1337a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
movq 0x40(%r15), %rax
testq %rax, %rax
je 0x47806
cmpq $0x0, (%rax)
je 0x47806
leaq 0x14d64(%rip), %rsi     # 0x5c508
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
movq 0x40(%r15), %rax
testq %rax, %rax
je 0x477c1
movq (%rax), %rsi
jmp 0x477c3
xorl %esi, %esi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1337a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x13ee9(%rip), %rsi     # 0x5b6f6
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
movq 0x50(%r15), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1337a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x14ca9(%rip), %rsi     # 0x5c513
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1337a
movl 0x70(%r15), %ecx
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x461f2
leaq 0x8(%rsp), %rdi
callq 0xdbe8
cmpb $0x1, 0x3d081(%rip)     # 0x84929
jne 0x478f4
leaq 0x118a8(%rip), %rsi     # 0x59159
movq %rbx, %rdi
callq 0xd550
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
pushq $0x8
popq %rsi
callq 0x46dae
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0xd4e0
leaq 0x14deb(%rip), %rsi     # 0x5c6c8
movq %rax, %rdi
callq 0xd550
leaq 0x8(%rsp), %rdi
callq 0xdbe8
jmp 0x47b4a
leaq 0x14db8(%rip), %rsi     # 0x5c6b3
movq %rbx, %rdi
callq 0xd550
leaq 0x14bc0(%rip), %rsi     # 0x5c4ca
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
leaq 0x14d65(%rip), %rax     # 0x5c685
leaq 0x14d5b(%rip), %rsi     # 0x5c682
cmpb $0x0, 0x80(%r15)
cmovneq %rax, %rsi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1337a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x14b54(%rip), %rsi     # 0x5c4d1
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
leaq 0x90(%r15), %r12
cmpb $0x1, 0x80(%r15)
jne 0x479bb
movq %r12, %rdi
callq 0x4000c
leaq 0x14cdd(%rip), %rcx     # 0x5c689
leaq 0x14cc2(%rip), %rsi     # 0x5c675
testb %al, %al
cmovneq %rcx, %rsi
jmp 0x479c2
leaq 0x14ccf(%rip), %rsi     # 0x5c691
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1337a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x14aa6(%rip), %rsi     # 0x5c4b2
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
movq 0x100(%r15), %rsi
leaq 0x28(%rsp), %rdi
callq 0x46e3a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x13c07(%rip), %rsi     # 0x5b66e
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
movq 0x108(%r15), %rsi
leaq 0x28(%rsp), %rdi
callq 0x46dc6
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x14a20(%rip), %rsi     # 0x5c4e2
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1337a
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %r14, %rsi
callq 0x1337a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x46060
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %r12, %rsi
callq 0x47220
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0xd4e0
leaq 0x8(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
movq %r12, %rsi
callq 0x4739c
leaq 0x48(%rsp), %rdi
callq 0xdbe8
leaq 0x68(%rsp), %rdi
callq 0xdbe8
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x47bca
jmp 0x47bab
jmp 0x47bca
jmp 0x47bab
jmp 0x47bc5
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bab
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bab
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bab
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bab
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bab
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bc5
jmp 0x47bca
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bab
jmp 0x47bca
jmp 0x47bc5
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xdbe8
jmp 0x47bcd
jmp 0x47bca
jmp 0x47bc5
jmp 0x47bc5
movq %rax, %rbx
jmp 0x47be1
movq %rax, %rbx
jmp 0x47bd7
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xdbe8
leaq 0x48(%rsp), %rdi
callq 0xdbe8
leaq 0x68(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0
nop