// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::internal::XmlUnitTestResultPrinter::OnTestIterationEnd(testing::UnitTest const&, int)
void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
                                                  int /*iteration*/) {
  FILE* xmlout = NULL;
  FilePath output_file(output_file_);
  FilePath output_dir(output_file.RemoveFileName());

  if (output_dir.CreateDirectoriesRecursively()) {
    xmlout = posix::FOpen(output_file_.c_str(), "w");
  }
  if (xmlout == NULL) {
    // TODO(wan): report the reason of the failure.
    //
    // We don't do it for now as:
    //
    //   1. There is no urgent need for it.
    //   2. It's a bit involved to make the errno variable thread-safe on
    //      all three operating systems (Linux, Windows, and Mac OS).
    //   3. To interpret the meaning of errno in a thread-safe way,
    //      we need the strerror_r() function, which is not available on
    //      Windows.
    GTEST_LOG_(FATAL) << "Unable to open file \"" 
                      << output_file_ << "\"";
  }
  std::stringstream stream;
  PrintXmlUnitTest(&stream, unit_test);
  fprintf(xmlout, "%s", StringStreamToString(&stream).c_str());
  fclose(xmlout);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0x228(%rbp)
movq $0x0, -0x20(%rbp)
addq $0x8, %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0x30820
movq -0x220(%rbp), %rsi
leaq -0x60(%rbp), %rdi
callq 0x20c90
jmp 0x20a5f
leaq -0x60(%rbp), %rdi
callq 0x20de0
movb %al, -0x229(%rbp)
jmp 0x20a70
movb -0x229(%rbp), %al
testb $0x1, %al
jne 0x20a7c
jmp 0x20ad3
movq -0x228(%rbp), %rdi
addq $0x8, %rdi
callq 0xe2b0
movq %rax, %rdi
leaq 0x6c38e(%rip), %rsi     # 0x8ce24
callq 0x355b0
movq %rax, -0x238(%rbp)
jmp 0x20aa4
movq -0x238(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x20ad3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x20c74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x20c6b
cmpq $0x0, -0x20(%rbp)
jne 0x20b82
leaq 0x69a24(%rip), %rdx     # 0x8a509
leaq -0x70(%rbp), %rdi
movl $0x3, %esi
movl $0xd92, %ecx            # imm = 0xD92
callq 0x2dbe0
jmp 0x20afa
leaq -0x70(%rbp), %rdi
callq 0x305f0
movq %rax, -0x240(%rbp)
jmp 0x20b0c
movq -0x240(%rbp), %rdi
leaq 0x6a39b(%rip), %rsi     # 0x8aeb5
callq 0xe750
movq %rax, -0x248(%rbp)
jmp 0x20b28
movq -0x248(%rbp), %rdi
movq -0x228(%rbp), %rsi
addq $0x8, %rsi
callq 0xe660
movq %rax, -0x250(%rbp)
jmp 0x20b48
movq -0x250(%rbp), %rdi
leaq 0x69c37(%rip), %rsi     # 0x8a78d
callq 0xe750
jmp 0x20b5d
leaq -0x70(%rbp), %rdi
callq 0x2dd20
jmp 0x20b82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x2dd20
jmp 0x20c6b
leaq -0x1f8(%rbp), %rdi
callq 0xe4e0
jmp 0x20b90
xorl %eax, %eax
leaq -0x1f8(%rbp), %rcx
cmpq $0x0, %rcx
movq %rax, -0x258(%rbp)
je 0x20bb8
leaq -0x1f8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x20ef0
jmp 0x20bca
movq -0x20(%rbp), %rax
movq %rax, -0x260(%rbp)
leaq -0x218(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x17130
jmp 0x20bea
leaq -0x218(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0xe2b0
movq -0x260(%rbp), %rdi
movq %rax, %rdx
leaq 0x6a77f(%rip), %rsi     # 0x8b38d
xorl %eax, %eax
callq 0xeba0
movq -0x268(%rbp), %rdi
callq 0xf058
movq -0x20(%rbp), %rdi
callq 0xe760
jmp 0x20c2c
leaq -0x1f8(%rbp), %rdi
callq 0xe550
leaq -0x60(%rbp), %rdi
callq 0x30870
leaq -0x40(%rbp), %rdi
callq 0x30870
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0xe550
leaq -0x60(%rbp), %rdi
callq 0x30870
leaq -0x40(%rbp), %rdi
callq 0x30870
movq -0x68(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)