// File: /workspace/github_cpp_makefile_star2_O2/ahupowerdns[P]mcounter/./ext/doctest.h
// Function: doctest::(anonymous namespace)::JUnitReporter::test_run_end(doctest::TestRunStats const&)
void test_run_end(const TestRunStats& p) override {
            // remove .exe extension - mainly to have the same output on UNIX and Windows
            std::string binary_name = skipPathFromFilename(opt.binary_name.c_str());
#ifdef DOCTEST_PLATFORM_WINDOWS
            if(binary_name.rfind(".exe") != std::string::npos)
                binary_name = binary_name.substr(0, binary_name.length() - 4);
#endif // DOCTEST_PLATFORM_WINDOWS
            xml.startElement("testsuites");
            xml.startElement("testsuite").writeAttribute("name", binary_name)
                    .writeAttribute("errors", testCaseData.totalErrors)
                    .writeAttribute("failures", testCaseData.totalFailures)
                    .writeAttribute("tests", p.numAsserts);
            if(opt.no_time_in_output == false) {
                xml.writeAttribute("time", testCaseData.totalSeconds);
                xml.writeAttribute("timestamp", JUnitTestCaseData::getCurrentTimestamp());
            }
            if(opt.no_version == false)
                xml.writeAttribute("doctest_version", DOCTEST_VERSION_STR);

            for(const auto& testCase : testCaseData.testcases) {
                xml.startElement("testcase")
                    .writeAttribute("classname", testCase.classname)
                    .writeAttribute("name", testCase.name);
                if(opt.no_time_in_output == false)
                    xml.writeAttribute("time", testCase.time);
                // This is not ideal, but it should be enough to mimic gtest's junit output.
                xml.writeAttribute("status", "run");

                for(const auto& failure : testCase.failures) {
                    xml.scopedElement("failure")
                        .writeAttribute("message", failure.message)
                        .writeAttribute("type", failure.type)
                        .writeText(failure.details, false);
                }

                for(const auto& error : testCase.errors) {
                    xml.scopedElement("error")
                        .writeAttribute("message", error.message)
                        .writeText(error.details);
                }

                xml.endElement();
            }
            xml.endElement();
            xml.endElement();
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rsi, %rbx
movq %rdi, 0x10(%rsp)
movq 0xc0(%rdi), %rdi
cmpb $0x0, 0x1f(%rdi)
jns 0xeb2e
movq 0x8(%rdi), %rdi
jmp 0xeb32
addq $0x8, %rdi
callq 0x66c2
leaq 0xe8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %rax, %rsi
callq 0x12d1a
leaq 0x957c(%rip), %rsi      # 0x180cf
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x12d1a
movq 0x10(%rsp), %rax
leaq 0x8(%rax), %rdi
leaq 0x48(%rsp), %rsi
movq %rdi, 0x8(%rsp)
callq 0xdd82
leaq 0x48(%rsp), %rdi
callq 0x51a0
leaq 0x9373(%rip), %rsi      # 0x17efe
leaq 0x48(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x12d1a
leaq 0x48(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0xdd82
leaq 0x935c(%rip), %rsi      # 0x17f0c
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x12d1a
leaq 0x28(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
movq 0x8(%rsp), %rdi
callq 0xdebe
leaq 0x94fd(%rip), %rsi      # 0x180da
leaq 0x80(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x12d1a
movq 0x10(%rsp), %rax
leaq 0xb8(%rax), %rdx
leaq 0x80(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0xde28
leaq 0x9446(%rip), %rsi      # 0x1805a
leaq 0xa0(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x12d1a
movq 0x10(%rsp), %rax
leaq 0xbc(%rax), %rdx
leaq 0xa0(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0xde28
leaq 0x9496(%rip), %rsi      # 0x180e1
leaq 0xc8(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x12d1a
addq $0x10, %rbx
leaq 0xc8(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %rbx, %rdx
callq 0xde28
leaq 0xc8(%rsp), %rdi
callq 0x51a0
leaq 0xa0(%rsp), %rdi
callq 0x51a0
leaq 0x80(%rsp), %rdi
callq 0x51a0
leaq 0x28(%rsp), %rdi
callq 0x51a0
leaq 0x48(%rsp), %rdi
callq 0x51a0
movq 0x10(%rsp), %rax
movq 0xc0(%rax), %rax
cmpb $0x0, 0x80(%rax)
jne 0xeda7
leaq 0x9416(%rip), %rsi      # 0x180e7
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x12d1a
movq 0x10(%rsp), %rax
leaq 0xb0(%rax), %rdx
leaq 0x48(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0xe7a8
leaq 0x48(%rsp), %rdi
callq 0x51a0
leaq 0x93e0(%rip), %rsi      # 0x180ec
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x12d1a
leaq 0xc8(%rsp), %rbx
movq %rbx, %rdi
callq 0x53a0
leaq 0x48(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x56f0
leaq 0x93ed(%rip), %rdx      # 0x1812f
leaq 0xa0(%rsp), %rbx
pushq $0x15
popq %rsi
movq %rbx, %rdi
movq %r15, %rcx
callq 0x5320
leaq 0x80(%rsp), %rdi
leaq 0x6(%rsp), %rdx
movq %rbx, %rsi
callq 0x12d1a
leaq 0x28(%rsp), %rsi
leaq 0x80(%rsp), %rdx
movq 0x8(%rsp), %rdi
callq 0xdebe
leaq 0x80(%rsp), %rdi
callq 0x51a0
leaq 0x28(%rsp), %rdi
callq 0x51a0
movq 0x10(%rsp), %rax
movq 0xc0(%rax), %rax
cmpb $0x0, 0x76(%rax)
jne 0xede3
leaq 0x9342(%rip), %rsi      # 0x180f6
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x12d1a
leaq 0x91be(%rip), %rdx      # 0x17f88
leaq 0x48(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0xe2bc
leaq 0x48(%rsp), %rdi
callq 0x51a0
movq 0x10(%rsp), %rax
movq 0x98(%rax), %rcx
movq 0xa0(%rax), %rax
movq %rax, 0xc0(%rsp)
leaq 0x48(%rsp), %r13
leaq 0xa0(%rsp), %rbp
leaq 0x28(%rsp), %r12
leaq 0x80(%rsp), %r15
movq %rcx, 0x20(%rsp)
cmpq 0xc0(%rsp), %rcx
je 0xf09a
movq %r13, %rdi
leaq 0x92d1(%rip), %rsi      # 0x18106
movq %rbp, %rdx
callq 0x12d1a
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0xdd82
movq %r12, %rdi
leaq 0x92bb(%rip), %rsi      # 0x1810f
leaq 0xc8(%rsp), %rdx
callq 0x12d1a
movq 0x8(%rsp), %rdi
movq %r12, %rsi
movq 0x20(%rsp), %rdx
callq 0xdebe
movq %r15, %rdi
leaq 0x908f(%rip), %rsi      # 0x17f0c
leaq 0x6(%rsp), %rdx
callq 0x12d1a
movq 0x20(%rsp), %rax
leaq 0x20(%rax), %rdx
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0xdebe
movq %r15, %rdi
callq 0x51a0
movq %r12, %rdi
callq 0x51a0
movq %r13, %rdi
callq 0x51a0
movq 0x10(%rsp), %rax
movq 0xc0(%rax), %rax
cmpb $0x0, 0x80(%rax)
jne 0xeefa
movq %r13, %rdi
leaq 0x9213(%rip), %rsi      # 0x180e7
movq %r12, %rdx
callq 0x12d1a
movq 0x20(%rsp), %rax
leaq 0x40(%rax), %rdx
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0xe7a8
movq %r13, %rdi
callq 0x51a0
movq %r13, %rdi
leaq 0x870b(%rip), %rsi      # 0x1760f
movq %r12, %rdx
callq 0x12d1a
movq 0x8(%rsp), %rdi
movq %r13, %rsi
leaq 0x89ce(%rip), %rdx      # 0x178e9
callq 0xe2bc
movq %r13, %rdi
callq 0x51a0
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rbx
movq 0x50(%rax), %r14
cmpq %r14, %rbx
je 0xeff1
movq %r13, %rdi
leaq 0x91d1(%rip), %rsi      # 0x18119
leaq 0xc8(%rsp), %rdx
callq 0x12d1a
movq %rbp, %rdi
movq 0x8(%rsp), %rsi
movq %r13, %rdx
callq 0xdc4c
movq %r12, %rdi
leaq 0x91b2(%rip), %rsi      # 0x18121
leaq 0x6(%rsp), %rdx
callq 0x12d1a
movq 0xa0(%rsp), %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0xdebe
movq %r15, %rdi
leaq 0x90e6(%rip), %rsi      # 0x1807c
leaq 0x7(%rsp), %rdx
callq 0x12d1a
addq $0x20, %rbx
movq 0xa0(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xdebe
addq $0x20, %rbx
movq %rbp, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0xe840
movq %r15, %rdi
callq 0x51a0
movq %r12, %rdi
callq 0x51a0
movq %rbp, %rdi
callq 0xdc80
movq %r13, %rdi
callq 0x51a0
addq $0x20, %rbx
jmp 0xef35
movq 0x20(%rsp), %rax
movq 0x60(%rax), %rbx
movq 0x68(%rax), %r14
cmpq %r14, %rbx
je 0xf082
movq %r13, %rdi
leaq 0x911c(%rip), %rsi      # 0x18129
movq %rbp, %rdx
callq 0x12d1a
movq %r15, %rdi
movq 0x8(%rsp), %rsi
movq %r13, %rdx
callq 0xdc4c
movq %r12, %rdi
leaq 0x90f2(%rip), %rsi      # 0x18121
leaq 0xc8(%rsp), %rdx
callq 0x12d1a
movq 0x80(%rsp), %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0xdebe
addq $0x40, %rbx
movq %r15, %rdi
movq %rbx, %rsi
pushq $0x1
popq %rdx
callq 0xe840
movq %r12, %rdi
callq 0x51a0
movq %r15, %rdi
callq 0xdc80
movq %r13, %rdi
callq 0x51a0
addq $0x20, %rbx
jmp 0xeffe
movq 0x8(%rsp), %rdi
callq 0xdcd2
movq 0x20(%rsp), %rcx
addq $0x78, %rcx
jmp 0xee18
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0xdcd2
movq %rbx, %rdi
callq 0xdcd2
leaq 0xe8(%rsp), %rdi
callq 0x51a0
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x51a0
jmp 0xf0e3
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0xf1d2
jmp 0xf185
jmp 0xf180
jmp 0xf180
jmp 0xf185
jmp 0xf180
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0x51a0
jmp 0xf11a
jmp 0xf117
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x51a0
jmp 0xf155
jmp 0xf152
jmp 0xf152
jmp 0xf14b
jmp 0xf14b
jmp 0xf185
jmp 0xf185
jmp 0xf180
jmp 0xf185
jmp 0xf180
jmp 0xf180
jmp 0xf185
jmp 0xf180
jmp 0xf180
jmp 0xf185
jmp 0xf185
jmp 0xf14b
jmp 0xf180
movq %rax, %rbx
jmp 0xf162
jmp 0xf185
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x51a0
leaq 0x28(%rsp), %rdi
callq 0x51a0
jmp 0xf1cd
jmp 0xf180
jmp 0xf185
movq %rax, %rbx
jmp 0xf19c
jmp 0xf180
jmp 0xf17b
movq %rax, %rbx
jmp 0xf1b6
movq %rax, %rbx
jmp 0xf1d7
movq %rax, %rbx
jmp 0xf1cd
movq %rax, %rbx
jmp 0xf1c0
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x51a0
leaq 0x80(%rsp), %rdi
jmp 0xf1c8
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x51a0
leaq 0x28(%rsp), %rdi
callq 0x51a0
leaq 0xa0(%rsp), %rdi
callq 0xdc80
leaq 0x48(%rsp), %rdi
callq 0x51a0
leaq 0xe8(%rsp), %rdi
callq 0x51a0
movq %rbx, %rdi
callq 0x5670