aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/coverage
diff options
context:
space:
mode:
authoregor-tensin <egor@tensin.name>2024-12-26 11:18:27 +0000
committeregor-tensin <egor@tensin.name>2024-12-26 11:18:27 +0000
commit91f8798bf240d55fabc021739239d95bdcb1b4d4 (patch)
treec53f20265fa3fffcb8322c84e8f8cc9706b4b772 /coverage
downloadcimple-gh-pages.tar.gz
cimple-gh-pages.zip
Deploying to gh-pages from @ egor-tensin/cimple@9f40d20e1c97e2c85e26a6a13ccf04e60d9f83f5 🚀gh-pages
Diffstat (limited to 'coverage')
-rw-r--r--coverage/index.base64.c.6cc41135837c80527c8f246c27adf87e.html563
-rw-r--r--coverage/index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html489
-rw-r--r--coverage/index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html909
-rw-r--r--coverage/index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html1027
-rw-r--r--coverage/index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html835
-rw-r--r--coverage/index.cmd_line.c.fc55483624faae9ff92546137d095857.html636
-rw-r--r--coverage/index.command.c.d26991ef13eb41283f88bf34125ef986.html1856
-rw-r--r--coverage/index.css603
-rw-r--r--coverage/index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html1964
-rw-r--r--coverage/index.file.c.0cc24881e570d19e625204519d50254f.html1357
-rw-r--r--coverage/index.functions.html377
-rw-r--r--coverage/index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html1001
-rw-r--r--coverage/index.html546
-rw-r--r--coverage/index.json.c.9fe0913c76249e448eec3131d7e8b263.html2377
-rw-r--r--coverage/index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html4327
-rw-r--r--coverage/index.log.c.47179e5db7ed3f2db741c99372ba24f3.html509
-rw-r--r--coverage/index.net.c.37012fce13860cefc5963f57e0f36732.html2152
-rw-r--r--coverage/index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html1360
-rw-r--r--coverage/index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html1860
-rw-r--r--coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html1648
-rw-r--r--coverage/index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html3998
-rw-r--r--coverage/index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html814
-rw-r--r--coverage/index.signal.c.71d63611c8a63e0778dd598afad76dfd.html765
-rw-r--r--coverage/index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html2462
-rw-r--r--coverage/index.storage.c.96d197609feea4b630e7b775fb18af81.html1088
-rw-r--r--coverage/index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html4403
-rw-r--r--coverage/index.string.c.2a75186e465ffeac1b306a350f4a56f8.html486
-rw-r--r--coverage/index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html2276
-rw-r--r--coverage/index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html2243
-rw-r--r--coverage/index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html814
-rw-r--r--coverage/index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html703
31 files changed, 46448 insertions, 0 deletions
diff --git a/coverage/index.base64.c.6cc41135837c80527c8f246c27adf87e.html b/coverage/index.base64.c.6cc41135837c80527c8f246c27adf87e.html
new file mode 100644
index 0000000..1ad8921
--- /dev/null
+++ b/coverage/index.base64.c.6cc41135837c80527c8f246c27adf87e.html
@@ -0,0 +1,563 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/base64.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>18</td>
+ <td>27</td>
+ <td class="coverage-low">66.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>2</td>
+ <td>2</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>3</td>
+ <td>12</td>
+ <td class="coverage-low">25.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l35">base64_decode (line 35)</a></td><td>called 9180 times, returned 9180 times</td><td>26.0%</td></tr>
+ <tr><td><a href="#l19">base64_encode (line 19)</a></td><td>called 9180 times, returned 9180 times</td><td>38.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;base64.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sodium.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stddef.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">base64_variant</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sodium_base64_VARIANT_ORIGINAL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">base64_encode</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">src_len</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">_dst</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">dst_len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sodium_base64_encoded_len</span><span class="p">(</span><span class="n">src_len</span><span class="p">,</span><span class="w"> </span><span class="n">base64_variant</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">dst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="n">dst_len</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">dst</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sodium_bin2base64</span><span class="p">(</span><span class="n">dst</span><span class="p">,</span><span class="w"> </span><span class="n">dst_len</span><span class="p">,</span><span class="w"> </span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="n">src_len</span><span class="p">,</span><span class="w"> </span><span class="n">base64_variant</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_dst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dst</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">base64_decode</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">_dst</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="o">*</span><span class="n">_dst_len</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">src_len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strlen</span><span class="p">(</span><span class="n">src</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">dst_max_len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">src_len</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">dst_len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">dst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="n">dst_max_len</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">dst</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sodium_base642bin</span><span class="p">(</span><span class="n">dst</span><span class="p">,</span><span class="w"> </span><span class="n">dst_max_len</span><span class="p">,</span><span class="w"> </span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="n">src_len</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">dst_len</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">base64_variant</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Couldn&#39;t parse base64-encoded string</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_dst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dst</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_dst_len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dst_len</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">dst</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html b/coverage/index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html
new file mode 100644
index 0000000..ffbe412
--- /dev/null
+++ b/coverage/index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html
@@ -0,0 +1,489 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/buf.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>16</td>
+ <td>18</td>
+ <td class="coverage-medium">88.9%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>5</td>
+ <td>5</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>1</td>
+ <td>4</td>
+ <td class="coverage-low">25.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l20">buf_create (line 20)</a></td><td>called 92012 times, returned 92012 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l35">buf_create_from_string (line 35)</a></td><td>called 46006 times, returned 46006 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l40">buf_destroy (line 40)</a></td><td>called 92012 times, returned 92012 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l50">buf_get_data (line 50)</a></td><td>called 138018 times, returned 138018 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l45">buf_get_size (line 45)</a></td><td>called 92012 times, returned 92012 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;buf.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdint.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">size</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">data</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">buf_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">**</span><span class="n">_buf</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">size</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 92012 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">92012</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">buf</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">buf</span><span class="o">-&gt;</span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">data</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">buf</span><span class="o">-&gt;</span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">size</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">buf</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">buf_create_from_string</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">**</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">str</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">buf_create</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">str</span><span class="p">,</span><span class="w"> </span><span class="n">strlen</span><span class="p">(</span><span class="n">str</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">buf_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="kt">uint32_t</span><span class="w"> </span><span class="nf">buf_get_size</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">buf</span><span class="o">-&gt;</span><span class="n">size</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">138018</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="nf">buf_get_data</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">138018</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">buf</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html b/coverage/index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html
new file mode 100644
index 0000000..f793d2e
--- /dev/null
+++ b/coverage/index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html
@@ -0,0 +1,909 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/ci.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>37</td>
+ <td>47</td>
+ <td class="coverage-medium">78.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>5</td>
+ <td>5</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>9</td>
+ <td>18</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l53">ci_cleanup_git_repo (line 53)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l59">ci_prepare_git_repo (line 59)</a></td><td>called 9180 times, returned 9180 times</td><td>60.0%</td></tr>
+ <tr><td><a href="#l40">ci_run (line 40)</a></td><td>called 9180 times, returned 9180 times</td><td>63.0%</td></tr>
+ <tr><td><a href="#l79">ci_run_git_repo (line 79)</a></td><td>called 9180 times, returned 9180 times</td><td>81.0%</td></tr>
+ <tr><td><a href="#l34">ci_run_script (line 34)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;ci.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;git.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;process.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;git2.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stddef.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/* clang-format off */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">ci_scripts</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;./.ci.sh&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;./.ci&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;./ci.sh&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;./ci&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">ci_env</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;CI=y&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;CIMPLE=y&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/* clang-format on */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">ci_run_script</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">script</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">args</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="n">script</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">process_execute_and_capture</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="n">ci_env</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">ci_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 36720 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36720</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">script</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ci_scripts</span><span class="p">;</span><span class="w"> </span><span class="o">*</span><span class="n">script</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">script</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">file_exists</span><span class="p">(</span><span class="o">*</span><span class="n">script</span><span class="p">))</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">continue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Going to run: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">script</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ci_run_script</span><span class="p">(</span><span class="o">*</span><span class="n">script</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Couldn&#39;t find any CI scripts to run</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">ci_cleanup_git_repo</span><span class="p">(</span><span class="n">git_repository</span><span class="w"> </span><span class="o">*</span><span class="n">repo</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">rm_rf</span><span class="p">(</span><span class="n">git_repository_workdir</span><span class="p">(</span><span class="n">repo</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">libgit_repository_free</span><span class="p">(</span><span class="n">repo</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">ci_prepare_git_repo</span><span class="p">(</span><span class="n">git_repository</span><span class="w"> </span><span class="o">**</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libgit_clone_to_tmp</span><span class="p">(</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libgit_checkout</span><span class="p">(</span><span class="o">*</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">cleanup_repo</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">cleanup_repo</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ci_cleanup_git_repo</span><span class="p">(</span><span class="o">*</span><span class="n">repo</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">ci_run_git_repo</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">oldpwd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">git_repository</span><span class="w"> </span><span class="o">*</span><span class="n">repo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ci_prepare_git_repo</span><span class="p">(</span><span class="o">&amp;</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">chdir_wrapper</span><span class="p">(</span><span class="n">git_repository_workdir</span><span class="p">(</span><span class="n">repo</span><span class="p">),</span><span class="w"> </span><span class="o">&amp;</span><span class="n">oldpwd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_repo</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ci_run</span><span class="p">(</span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">oldpwd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">oldpwd</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">chdir_wrapper</span><span class="p">(</span><span class="n">oldpwd</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">oldpwd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">free_repo</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ci_cleanup_git_repo</span><span class="p">(</span><span class="n">repo</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">exit</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html b/coverage/index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html
new file mode 100644
index 0000000..2ec8246
--- /dev/null
+++ b/coverage/index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html
@@ -0,0 +1,1027 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/client.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>50</td>
+ <td>62</td>
+ <td class="coverage-medium">80.6%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>4</td>
+ <td>4</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>17</td>
+ <td>30</td>
+ <td class="coverage-low">56.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l25">client_create (line 25)</a></td><td>called 9208 times, returned 9208 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l39">client_destroy (line 39)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l72">client_main (line 72)</a></td><td>called 9208 times, returned 9208 times</td><td>64.0%</td></tr>
+ <tr><td><a href="#l44">make_request (line 44)</a></td><td>called 9208 times, returned 9208 times</td><td>80.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;client.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;cmd_line.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json_rpc.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;net.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;protocol.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;run_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">dummy</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">client_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">**</span><span class="n">_client</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9208 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9208</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">client_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">make_request</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 1 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9207 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">argc</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">1</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage_err</span><span class="p">(</span><span class="s">&quot;no action specified&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9207</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="n">CMD_QUEUE_RUN</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">argc</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">run_queued</span><span class="p">(</span><span class="o">&amp;</span><span class="n">run</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_create_queue_run</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_destroy</span><span class="p">(</span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 26 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 1 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">27</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="n">CMD_GET_RUNS</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">argc</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">request_create_get_runs</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">1</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">client_main</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">make_request</span><span class="p">(</span><span class="o">&amp;</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 1 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9207</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">1</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage_err</span><span class="p">(</span><span class="s">&quot;invalid request&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_connect</span><span class="p">(</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">,</span><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_send</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_recv</span><span class="p">(</span><span class="o">&amp;</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">response_str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_to_string</span><span class="p">(</span><span class="n">response</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">response_str</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">jsonrpc_response_is_error</span><span class="p">(</span><span class="n">response</span><span class="p">))</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;%s&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">response_str</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;no response</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_response</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="nl">free_response</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_response_destroy</span><span class="p">(</span><span class="n">response</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="nl">close</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="nl">free_request</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html b/coverage/index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html
new file mode 100644
index 0000000..529adc7
--- /dev/null
+++ b/coverage/index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html
@@ -0,0 +1,835 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/client_main.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>34</td>
+ <td>43</td>
+ <td class="coverage-medium">79.1%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>4</td>
+ <td>4</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>10</td>
+ <td>14</td>
+ <td class="coverage-low">71.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l16">default_settings (line 16)</a></td><td>called 9214 times, returned 9214 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l25">get_usage_string (line 25)</a></td><td>called 6 times, returned 6 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l76">main (line 76)</a></td><td>called 9214 times, returned 9214 times</td><td>79.0%</td></tr>
+ <tr><td><a href="#l33">parse_settings (line 33)</a></td><td>called 9214 times, returned 9214 times</td><td>76.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;client.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;cmd_line.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;getopt.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">default_settings</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">settings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">.</span><span class="n">host</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_host</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">.</span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_port</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">6</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">get_usage_string</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">6</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="s">&quot;[-h|--help] [-V|--version] [-v|--verbose] [-H|--host HOST] [-p|--port PORT] ACTION [ARG...]</span><span class="se">\n</span><span class="s">\</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="se">\n</span><span class="s">\</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="s">available actions:</span><span class="se">\n</span><span class="s">\</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="se">\t</span><span class="s">&quot;</span><span class="w"> </span><span class="n">CMD_QUEUE_RUN</span><span class="w"> </span><span class="s">&quot; URL REV - schedule a CI run of repository at URL, revision REV&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">parse_settings</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">opt</span><span class="p">,</span><span class="w"> </span><span class="n">longind</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_settings</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* clang-format off */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">option</span><span class="w"> </span><span class="n">long_options</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;help&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;h&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;version&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;V&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;verbose&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;v&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;host&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">required_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;H&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;port&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">required_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;p&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* clang-format on */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 18422 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9208 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">27630</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">((</span><span class="n">opt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">getopt_long</span><span class="p">(</span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;hVvH:p:&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">long_options</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">longind</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">-1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">5/6</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 2 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 2 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ <div class="takenBranch">&check; Branch 3 taken 9208 times.</div>
+ <div class="takenBranch">&check; Branch 4 taken 9208 times.</div>
+ <div class="takenBranch">&check; Branch 5 taken 2 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18422</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">opt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;h&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;V&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_version</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;v&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">g_log_lvl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LOG_LVL_DEBUG</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;H&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">host</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">optarg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;p&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">optarg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">default</span><span class="o">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">main</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9214</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">parse_settings</span><span class="p">(</span><span class="o">&amp;</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9208 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9208</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9208 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9208</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9208</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client_main</span><span class="p">(</span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="n">argc</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">optind</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="p">)</span><span class="n">argv</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">optind</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_client</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="nl">destroy_client</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client_destroy</span><span class="p">(</span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.cmd_line.c.fc55483624faae9ff92546137d095857.html b/coverage/index.cmd_line.c.fc55483624faae9ff92546137d095857.html
new file mode 100644
index 0000000..974e032
--- /dev/null
+++ b/coverage/index.cmd_line.c.fc55483624faae9ff92546137d095857.html
@@ -0,0 +1,636 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/cmd_line.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>28</td>
+ <td>32</td>
+ <td class="coverage-medium">87.5%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>5</td>
+ <td>5</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>7</td>
+ <td>14</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l42">exit_with_usage (line 42)</a></td><td>called 14 times, returned 0 time</td><td>89.0%</td></tr>
+ <tr><td><a href="#l55">exit_with_usage_err (line 55)</a></td><td>called 2 times, returned 0 time</td><td>100.0%</td></tr>
+ <tr><td><a href="#l62">exit_with_version (line 62)</a></td><td>called 6 times, returned 0 time</td><td>83.0%</td></tr>
+ <tr><td><a href="#l22">get_current_binary_name (line 22)</a></td><td>called 20 times, returned 20 times</td><td>47.0%</td></tr>
+ <tr><td><a href="#l17">get_current_binary_path (line 17)</a></td><td>called 20 times, returned 20 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;cmd_line.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">get_current_binary_path</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">readlink_wrapper</span><span class="p">(</span><span class="s">&quot;/proc/self/exe&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">get_current_binary_name</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_current_binary_path</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 20 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">20</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">path</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">basename</span><span class="p">(</span><span class="n">path</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="p">(</span><span class="n">name</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 20 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">20</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strdup&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_path</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="nl">free_path</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">path</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">14</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">exit_with_usage</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">ec</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">14</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">FILE</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">stdout</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 8 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 6 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">14</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ec</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">8</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">dest</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">stderr</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">14</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">binary</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_current_binary_name</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 14 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">14</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">dest</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;usage: %s %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">binary</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">binary</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="s">&quot;prog&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">get_usage_string</span><span class="p">());</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">14</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">binary</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">14</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit</span><span class="p">(</span><span class="n">ec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">exit_with_usage_err</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">msg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 2 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">2</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;usage error: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">msg</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">6</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">exit_with_version</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">6</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">binary</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_current_binary_name</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 6 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">6</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;%s v%s (%s)</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">binary</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">binary</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="s">&quot;prog&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">project_version</span><span class="p">,</span><span class="w"> </span><span class="n">project_rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">6</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">binary</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">6</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.command.c.d26991ef13eb41283f88bf34125ef986.html b/coverage/index.command.c.d26991ef13eb41283f88bf34125ef986.html
new file mode 100644
index 0000000..55eab7e
--- /dev/null
+++ b/coverage/index.command.c.d26991ef13eb41283f88bf34125ef986.html
@@ -0,0 +1,1856 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/command.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>89</td>
+ <td>120</td>
+ <td class="coverage-low">74.2%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>11</td>
+ <td>12</td>
+ <td class="coverage-high">91.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>33</td>
+ <td>66</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l66">cmd_dispatcher_create (line 66)</a></td><td>called 83 times, returned 83 times</td><td>24.0%</td></tr>
+ <tr><td><a href="#l102">cmd_dispatcher_destroy (line 102)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l128">cmd_dispatcher_handle (line 128)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l210">cmd_dispatcher_handle_conn (line 210)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l148">cmd_dispatcher_handle_conn_internal (line 148)</a></td><td>called 36800 times, returned 36800 times</td><td>72.0%</td></tr>
+ <tr><td><a href="#l215">cmd_dispatcher_handle_event (line 215)</a></td><td>called 9180 times, returned 9180 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l109">cmd_dispatcher_handle_internal (line 109)</a></td><td>called 36800 times, returned 36800 times</td><td>50.0%</td></tr>
+ <tr><td><a href="#l24">copy_cmd (line 24)</a></td><td>called 170 times, returned 170 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l40">copy_cmds (line 40)</a></td><td>called 83 times, returned 83 times</td><td>54.0%</td></tr>
+ <tr><td><a href="#l35">free_cmd (line 35)</a></td><td>called 170 times, returned 170 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l60">free_cmds (line 60)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l134">make_conn_ctx (line 134)</a></td><td>called 36800 times, returned 36800 times</td><td>27.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;command.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;event_loop.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json_rpc.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;poll.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">cmds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">copy_cmd</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">dest</span><span class="o">-&gt;</span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="p">(</span><span class="n">src</span><span class="o">-&gt;</span><span class="n">name</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 170 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">170</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">dest</span><span class="o">-&gt;</span><span class="n">name</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strdup&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">dest</span><span class="o">-&gt;</span><span class="n">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">src</span><span class="o">-&gt;</span><span class="n">handler</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">free_cmd</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">desc</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">desc</span><span class="o">-&gt;</span><span class="n">name</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">copy_cmds</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">numof_copied</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 170 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">253</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">numof_copied</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">numof_copied</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">numof_copied</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">copy_cmd</span><span class="p">(</span><span class="o">&amp;</span><span class="n">dest</span><span class="p">[</span><span class="n">numof_copied</span><span class="p">],</span><span class="w"> </span><span class="o">&amp;</span><span class="n">src</span><span class="p">[</span><span class="n">numof_copied</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 170 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">170</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">numof_copied</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free_cmd</span><span class="p">(</span><span class="o">&amp;</span><span class="n">dest</span><span class="p">[</span><span class="n">numof_copied</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">free_cmds</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">cmds</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 170 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">253</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">170</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free_cmd</span><span class="p">(</span><span class="o">&amp;</span><span class="n">cmds</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">cmd_dispatcher_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">**</span><span class="n">_dispatcher</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">cmds</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="n">dispatcher</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">83</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">dispatcher</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">83</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">numof_cmds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">copy_cmds</span><span class="p">(</span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="p">,</span><span class="w"> </span><span class="n">cmds</span><span class="p">,</span><span class="w"> </span><span class="n">numof_cmds</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">83</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_cmds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_dispatcher</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dispatcher</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_cmds</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">cmd_dispatcher_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="n">dispatcher</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free_cmds</span><span class="p">(</span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="p">,</span><span class="w"> </span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">numof_cmds</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">cmd_dispatcher_handle_internal</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="n">dispatcher</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">actual_cmd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_method</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 64418 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">64418</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">numof_cmds</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64418</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="o">*</span><span class="n">cmd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="p">[</span><span class="n">i</span><span class="p">];</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27618 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">64418</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">strcmp</span><span class="p">(</span><span class="n">cmd</span><span class="o">-&gt;</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">actual_cmd</span><span class="p">))</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">continue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">cmd</span><span class="o">-&gt;</span><span class="n">handler</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="n">arg</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Received an unknown command: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">actual_cmd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">cmd_dispatcher_handle</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="n">dispatcher</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">command</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_internal</span><span class="p">(</span><span class="n">dispatcher</span><span class="p">,</span><span class="w"> </span><span class="n">command</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">ctx</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">make_conn_ctx</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">ctx</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">arg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_conn_internal</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="n">dispatcher</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">new_ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">make_conn_ctx</span><span class="p">(</span><span class="n">conn_fd</span><span class="p">,</span><span class="w"> </span><span class="n">dispatcher</span><span class="o">-&gt;</span><span class="n">ctx</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">new_ctx</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_recv</span><span class="p">(</span><span class="o">&amp;</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">requires_response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">!</span><span class="n">jsonrpc_request_is_notification</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">default_response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27594 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">requires_response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">default_response</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">default_error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27594 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">requires_response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_error_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">default_error</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;An error occured&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_default_response</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_internal</span><span class="p">(</span><span class="n">dispatcher</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">new_ctx</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27594 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">requires_response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">actual_response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">response</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">actual_response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">actual_response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">default_error</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">default_response</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ <div class="notTakenBranch">&cross; Branch 3 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n">jsonrpc_response_is_error</span><span class="p">(</span><span class="n">actual_response</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">actual_response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_error</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_send</span><span class="p">(</span><span class="n">actual_response</span><span class="p">,</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="mi">-1</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27594 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">response</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_response_destroy</span><span class="p">(</span><span class="n">response</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27594 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">default_error</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_response_destroy</span><span class="p">(</span><span class="n">default_error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27594</td>
+ <td class="src coveredLine"><span class="nl">free_default_response</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27594 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">default_response</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_response_destroy</span><span class="p">(</span><span class="n">default_response</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27594</td>
+ <td class="src coveredLine"><span class="nl">free_request</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="nl">free_ctx</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">new_ctx</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_conn</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_dispatcher</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_conn_internal</span><span class="p">(</span><span class="n">conn_fd</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_event</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">revents</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_dispatcher</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="n">revents</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLIN</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Descriptor %d is not readable</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_conn_internal</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.css b/coverage/index.css
new file mode 100644
index 0000000..6b6c4e9
--- /dev/null
+++ b/coverage/index.css
@@ -0,0 +1,603 @@
+:root {
+ font-family: sans-serif;
+ --tab_size: 4;
+}
+
+.theme-green, .theme-blue {
+ --unknown_color: lightgray;
+ --low_color: #FF6666;
+ --medium_color: #F9FD63;
+ --partial_covered_color: var(--medium_color);
+ --uncovered_color: #FF8C8C;
+ --warning_color: orangered;
+ --notTakenBranch_color: red;
+ --uncheckedDecision_color: darkorange;
+ --notTakenDecision_color: red;
+ --notInvokedCall_color: red;
+ --excluded_color: rgb(255, 241, 229);
+}
+
+.theme-green {
+ --high_color: #85E485;
+ --covered_color: #85E485;
+ --takenBranch_color: green;
+ --takenDecision_color: green;
+ --invokedCall_color: green;
+}
+
+.theme-blue {
+ --high_color: #66B4FF;
+ --covered_color: #66B4Ff;
+ --takenBranch_color: blue;
+ --takenDecision_color: blue;
+ --invokedCall_color: blue;
+}
+
+body
+{
+ color: #000000;
+ background-color: #FFFFFF;
+}
+
+h1
+{
+ text-align: center;
+ margin: 0;
+ padding-bottom: 10px;
+ font-size: 20pt;
+ font-weight: bold;
+}
+
+hr
+{
+ background-color: navy;
+ height: 2px;
+ border: 0;
+}
+
+/* Link formats: use maroon w/underlines */
+a:link
+{
+ color: navy;
+ text-decoration: underline;
+}
+a:visited
+{
+ color: maroon;
+ text-decoration: underline;
+}
+
+/*** Summary formats ***/
+
+.summary
+{
+ display: flex;
+ flex-flow: row wrap;
+ max-width: 100%;
+ justify-content: flex-start;
+}
+
+.summary > table
+{
+ flex: 1 0 7em;
+ border: 0;
+}
+
+.summary > :last-child {
+ margin-left: auto;
+}
+
+table.legend
+{
+ color: black;
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: flex-start;
+}
+
+table.legend th[scope=row]
+{
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+}
+
+table.legend td
+{
+ color: blue;
+ text-align: left;
+ white-space: nowrap;
+ padding-left: 5px;
+}
+
+table.legend td.legend
+{
+ color: black;
+ font-size: 80%;
+}
+
+table.legend td.warning_text
+{
+ color: var(--warning_color);
+}
+
+table.coverage td,
+table.coverage th
+{
+ text-align: right;
+ color: black;
+ font-weight: normal;
+ white-space: nowrap;
+ padding-left: 5px;
+ padding-right: 4px;
+}
+
+table.coverage td
+{
+ background-color: LightSteelBlue;
+}
+
+table.coverage th[scope=row]
+{
+ color: black;
+ font-weight: normal;
+ white-space: nowrap;
+}
+
+table.coverage th[scope=col]
+{
+ color: blue;
+ font-weight: normal;
+ white-space: nowrap;
+}
+
+table.legend span
+{
+ margin-right: 4px;
+ padding: 2px;
+}
+
+table.legend span.coverage-unknown,
+table.legend span.coverage-none,
+table.legend span.coverage-low,
+table.legend span.coverage-medium,
+table.legend span.coverage-high
+{
+ padding-left: 3px;
+ padding-right: 3px;
+}
+
+table.legend span.coverage-unknown,
+table.coverage td.coverage-unknown,
+table.file-list td.coverage-unknow
+{
+ background-color: var(--unknown_color) !important;
+}
+
+table.legend span.coverage-none,
+table.legend span.coverage-low,
+table.coverage td.coverage-none,
+table.coverage td.coverage-low,
+table.file-list td.coverage-none,
+table.file-list td.coverage-low
+{
+ background-color: var(--low_color) !important;
+}
+
+table.legend span.coverage-medium,
+table.coverage td.coverage-medium,
+table.file-list td.coverage-medium
+{
+ background-color: var(--medium_color) !important;
+}
+
+table.legend span.coverage-high,
+table.coverage td.coverage-high,
+table.file-list td.coverage-high
+{
+ background-color: var(--high_color) !important;
+}
+/*** End of Summary formats ***/
+/*** Meter formats ***/
+
+/* Common */
+meter {
+ -moz-appearance: none;
+
+ width: 30vw;
+ min-width: 4em;
+ max-width: 15em;
+ height: 0.75em;
+ padding: 0;
+ vertical-align: baseline;
+ margin-top: 3px;
+ /* Outer background for Mozilla */
+ background: none;
+ background-color: whitesmoke;
+}
+
+/* Webkit */
+
+meter::-webkit-meter-bar {
+ /* Outer background for Webkit */
+ background: none;
+ background-color: whitesmoke;
+ height: 0.75em;
+ border-radius: 0px;
+}
+
+meter::-webkit-meter-optimum-value,
+meter::-webkit-meter-suboptimum-value,
+meter::-webkit-meter-even-less-good-value
+{
+ /* Inner shadow for Webkit */
+ border: solid 1px black;
+}
+
+meter.coverage-none::-webkit-meter-optimum-value,
+meter.coverage-low::-webkit-meter-optimum-value
+{
+ background: var(--low_color);
+}
+
+meter.coverage-medium::-webkit-meter-optimum-value
+{
+ background: var(--medium_color);
+}
+
+meter.coverage-high::-webkit-meter-optimum-value
+{
+ background: var(--high_color);
+}
+
+/* Mozilla */
+
+meter::-moz-meter-bar
+{
+ box-sizing: border-box;
+}
+
+meter:-moz-meter-optimum::-moz-meter-bar,
+meter:-moz-meter-sub-optimum::-moz-meter-bar,
+meter:-moz-meter-sub-sub-optimum::-moz-meter-bar
+{
+ /* Inner shadow for Mozilla */
+ border: solid 1px black;
+}
+
+meter.coverage-none:-moz-meter-optimum::-moz-meter-bar,
+meter.coverage-low:-moz-meter-optimum::-moz-meter-bar
+{
+ background: var(--low_color);
+}
+
+meter.coverage-medium:-moz-meter-optimum::-moz-meter-bar
+{
+ background: var(--medium_color);
+}
+
+meter.coverage-high:-moz-meter-optimum::-moz-meter-bar
+{
+ background: var(--high_color);
+}
+
+/*** End of Meter formats ***/
+.file-list td, .file-list th {
+ padding: 0 10px;
+ font-weight: bold;
+}
+
+.file-list th[scope^=col]
+{
+ text-align: center;
+ color: white;
+ background-color: SteelBlue;
+ font-size: 120%;
+}
+
+.file-list th[scope=row]
+{
+ text-align: left;
+ color: black;
+ font-family: monospace;
+ font-weight: bold;
+ font-size: 110%;
+}
+
+.file-list tr > td,
+.file-list tr > th {
+ background: aliceblue;
+}
+
+.file-list tr:nth-child(even) > td,
+.file-list tr:nth-child(even) > th {
+ background: LightSteelBlue
+}
+
+.file-list tr:hover > td,
+.file-list tr:hover > th[scope=row]
+{
+ background-color: #ddd;
+}
+td.CoverValue
+{
+ text-align: right;
+ white-space: nowrap;
+}
+
+td.coveredLine,
+span.coveredLine
+{
+ background-color: var(--covered_color) !important;
+}
+
+td.partialCoveredLine,
+span.partialCoveredLine
+{
+ background-color: var(--partial_covered_color) !important;
+}
+
+td.uncoveredLine,
+span.uncoveredLine
+{
+ background-color: var(--uncovered_color) !important;
+}
+
+td.excludedLine,
+span.excludedLine
+{
+ background-color: var(--excluded_color) !important;
+}
+
+.linebranch, .linedecision, .linecall, .linecount
+{
+ font-family: monospace;
+ border-right: 1px gray solid;
+ background-color: lightgray;
+ text-align: right;
+}
+
+
+.linebranchDetails, .linedecisionDetails, .linecallDetails
+{
+ position: relative;
+}
+.linebranchSummary, .linedecisionSummary, .linecallSummary
+{
+ cursor: help;
+}
+.linebranchContents, .linedecisionContents, .linecallContents
+{
+ font-family: sans-serif;
+ font-size: small;
+ text-align: left;
+ position: absolute;
+ width: 15em;
+ padding: 1em;
+ background: white;
+ border: solid gray 1px;
+ box-shadow: 5px 5px 10px gray;
+ z-index: 1; /* show in front of the table entries */
+}
+
+.takenBranch
+{
+ color: var(--takenBranch_color) !important;
+}
+
+.notTakenBranch
+{
+ color: var(--notTakenBranch_color) !important;
+}
+
+.takenDecision
+{
+ color: var(--takenDecision_color) !important;
+}
+
+.notTakenDecision
+{
+ color: var(--notTakenDecision_color) !important;
+}
+
+.uncheckedDecision
+{
+ color: var(--uncheckedDecision_color) !important;
+}
+
+.invokedCall
+{
+ color: var(--invokedCall_color) !important;
+}
+
+.notInvokedCall
+{
+ color: var(--notInvokedCall_color) !important;
+}
+
+.src
+{
+ padding-left: 12px;
+ text-align: left;
+
+ font-family: monospace;
+ white-space: pre;
+
+ tab-size: var(--tab_size);
+ -moz-tab-size: var(--tab_size);
+}
+
+span.takenBranch,
+span.notTakenBranch,
+span.takenDecision,
+span.notTakenDecision,
+span.uncheckedDecision
+{
+ font-family: monospace;
+ font-weight: bold;
+}
+
+pre
+{
+ height : 15px;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.listOfFunctions td, .listOfFunctions th {
+ padding: 0 10px;
+}
+.listOfFunctions th
+{
+ text-align: center;
+ color: white;
+ background-color: SteelBlue;
+}
+.listOfFunctions tr > td {
+ background: aliceblue;
+}
+.listOfFunctions tr:nth-child(even) > td {
+ background: LightSteelBlue
+}
+.listOfFunctions tr:hover > td
+{
+ background-color: #ddd;
+}
+.listOfFunctions tr > td > a
+{
+ text-decoration: none;
+ color: inherit;
+}
+
+.source-line
+{
+ height : 15px;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.lineno
+{
+ background-color: #EFE383;
+ border-right: 1px solid #BBB15F;
+ text-align: right;
+ unicode-bidi: embed;
+ font-family: monospace;
+ white-space: pre;
+}
+
+.lineno > a
+{
+ text-decoration: none;
+ color: inherit;
+}
+
+.file-list
+{
+ margin: 1em auto;
+ border: 0;
+ border-spacing: 1px;
+}
+
+.file-source table
+{
+ border-spacing: 0;
+}
+
+.file-source table td,
+.file-source table th
+{
+ padding: 1px 10px;
+}
+
+.file-source table th
+{
+ font-family: monospace;
+ font-weight: bold;
+}
+
+.file-source table td:last-child
+{
+ width: 100%;
+}
+footer
+{
+ text-align: center;
+ padding-top: 3px;
+}
+
+/* pygments syntax highlighting */
+pre { line-height: 125%; }
+td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.hll { background-color: #ffffcc }
+.c { color: #3D7B7B; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #008000; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
+.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
+.cp { color: #9C6500 } /* Comment.Preproc */
+.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
+.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
+.gr { color: #E40000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #008400 } /* Generic.Inserted */
+.go { color: #717171 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008000 } /* Keyword.Pseudo */
+.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #B00040 } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BA2121 } /* Literal.String */
+.na { color: #687822 } /* Name.Attribute */
+.nb { color: #008000 } /* Name.Builtin */
+.nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #717171; font-weight: bold } /* Name.Entity */
+.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
+.nf { color: #0000FF } /* Name.Function */
+.nl { color: #767600 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #19177C } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #666666 } /* Literal.Number.Bin */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sa { color: #BA2121 } /* Literal.String.Affix */
+.sb { color: #BA2121 } /* Literal.String.Backtick */
+.sc { color: #BA2121 } /* Literal.String.Char */
+.dl { color: #BA2121 } /* Literal.String.Delimiter */
+.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BA2121 } /* Literal.String.Double */
+.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BA2121 } /* Literal.String.Heredoc */
+.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #A45A77 } /* Literal.String.Regex */
+.s1 { color: #BA2121 } /* Literal.String.Single */
+.ss { color: #19177C } /* Literal.String.Symbol */
+.bp { color: #008000 } /* Name.Builtin.Pseudo */
+.fm { color: #0000FF } /* Name.Function.Magic */
+.vc { color: #19177C } /* Name.Variable.Class */
+.vg { color: #19177C } /* Name.Variable.Global */
+.vi { color: #19177C } /* Name.Variable.Instance */
+.vm { color: #19177C } /* Name.Variable.Magic */
+.il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file
diff --git a/coverage/index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html b/coverage/index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html
new file mode 100644
index 0000000..2150bd0
--- /dev/null
+++ b/coverage/index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html
@@ -0,0 +1,1964 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/event_loop.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>111</td>
+ <td>131</td>
+ <td class="coverage-medium">84.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>14</td>
+ <td>14</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>39</td>
+ <td>76</td>
+ <td class="coverage-low">51.3%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l132">append_event (line 132)</a></td><td>called 340226 times, returned 340226 times</td><td>75.0%</td></tr>
+ <tr><td><a href="#l29">event_fd_create (line 29)</a></td><td>called 36966 times, returned 36966 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l46">event_fd_destroy (line 46)</a></td><td>called 36966 times, returned 36966 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l51">event_fd_queue_create (line 51)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l56">event_fd_queue_destroy (line 56)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l103">event_loop_add (line 103)</a></td><td>called 112 times, returned 112 times</td><td>83.0%</td></tr>
+ <tr><td><a href="#l94">event_loop_add_internal (line 94)</a></td><td>called 36966 times, returned 36966 times</td><td>67.0%</td></tr>
+ <tr><td><a href="#l112">event_loop_add_once (line 112)</a></td><td>called 36854 times, returned 36854 times</td><td>83.0%</td></tr>
+ <tr><td><a href="#l72">event_loop_create (line 72)</a></td><td>called 83 times, returned 83 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l88">event_loop_destroy (line 88)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l123">event_loop_remove (line 123)</a></td><td>called 36800 times, returned 36800 times</td><td>73.0%</td></tr>
+ <tr><td><a href="#l190">event_loop_run (line 190)</a></td><td>called 62232 times, returned 62232 times</td><td>58.0%</td></tr>
+ <tr><td><a href="#l139">events_to_string (line 139)</a></td><td>called 340226 times, returned 340226 times</td><td>61.0%</td></tr>
+ <tr><td><a href="#l166">make_pollfds (line 166)</a></td><td>called 62232 times, returned 62232 times</td><td>52.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;event_loop.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;string.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;poll.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stddef.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/queue.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="n">SIMPLEQ_HEAD</span><span class="p">(</span><span class="n">event_fd_queue</span><span class="p">,</span><span class="w"> </span><span class="n">event_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">events</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">event_handler</span><span class="w"> </span><span class="n">handler</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">once</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">SIMPLEQ_ENTRY</span><span class="p">(</span><span class="n">event_fd</span><span class="p">)</span><span class="w"> </span><span class="n">entries</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">event_fd_create</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">events</span><span class="p">,</span><span class="w"> </span><span class="n">event_handler</span><span class="w"> </span><span class="n">handler</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36966 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36966</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">res</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">res</span><span class="o">-&gt;</span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">res</span><span class="o">-&gt;</span><span class="n">events</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">events</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">res</span><span class="o">-&gt;</span><span class="n">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">handler</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">res</span><span class="o">-&gt;</span><span class="n">arg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">res</span><span class="o">-&gt;</span><span class="n">once</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">res</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="n">event_fd_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="n">event_fd_queue_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INIT</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="n">event_fd_queue_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 166 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">249</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">entry1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">166</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_NEXT</span><span class="p">(</span><span class="n">entry1</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">166</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_fd_destroy</span><span class="p">(</span><span class="n">entry1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">166</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry2</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INIT</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">nfds_t</span><span class="w"> </span><span class="n">nfds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd_queue</span><span class="w"> </span><span class="n">entries</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">event_loop_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">**</span><span class="n">_loop</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">83</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">loop</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_loop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">loop</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_fd_queue_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">event_loop_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_fd_queue_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">event_loop_add_internal</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 36966 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36966</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot;Adding descriptor %d to event loop</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">nfds_t</span><span class="w"> </span><span class="n">nfds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">nfds</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INSERT_TAIL</span><span class="p">(</span><span class="o">&amp;</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">entries</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">nfds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nfds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36966</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">112</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">event_loop_add</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">events</span><span class="p">,</span><span class="w"> </span><span class="n">event_handler</span><span class="w"> </span><span class="n">handler</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">112</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_fd_create</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">events</span><span class="p">,</span><span class="w"> </span><span class="n">handler</span><span class="p">,</span><span class="w"> </span><span class="n">arg</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 112 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">112</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">112</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_loop_add_internal</span><span class="p">(</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">112</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36854</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">event_loop_add_once</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">events</span><span class="p">,</span><span class="w"> </span><span class="n">event_handler</span><span class="w"> </span><span class="n">handler</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36854</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_fd_create</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">events</span><span class="p">,</span><span class="w"> </span><span class="n">handler</span><span class="p">,</span><span class="w"> </span><span class="n">arg</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36854 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36854</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36854</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">once</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36854</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_loop_add_internal</span><span class="p">(</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36854</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">event_loop_remove</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot;Removing descriptor %d from event loop</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">5/8</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 3 not taken.</div>
+ <div class="takenBranch">&check; Branch 4 taken 57564 times.</div>
+ <div class="takenBranch">&check; Branch 5 taken 36800 times.</div>
+ <div class="takenBranch">&check; Branch 6 taken 23009 times.</div>
+ <div class="takenBranch">&check; Branch 7 taken 13791 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">94364</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">SIMPLEQ_REMOVE</span><span class="p">(</span><span class="o">&amp;</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">entries</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">event_fd</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_fd_destroy</span><span class="p">(</span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">--</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">nfds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">append_event</span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">event</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ptr</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">buf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">string_append</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="n">buf</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;,&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">string_append</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="n">buf</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">event</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">events_to_string</span><span class="p">(</span><span class="kt">short</span><span class="w"> </span><span class="n">events</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">sz</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">128</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">buf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">buf</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLNVAL</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">append_event</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;POLLNVAL&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLERR</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">append_event</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;POLLERR&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLHUP</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">append_event</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;POLLHUP&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLRDHUP</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">append_event</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;POLLRDHUP&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLPRI</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">append_event</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;POLLPRI&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 340226 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLIN</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">append_event</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;POLLIN&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLOUT</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">append_event</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">sz</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;POLLOUT&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">buf</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">pollfd</span><span class="w"> </span><span class="o">*</span><span class="n">make_pollfds</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">pollfd</span><span class="w"> </span><span class="o">*</span><span class="n">fds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">nfds</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">pollfd</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 62232 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">62232</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">fds</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="o">&amp;</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 275723 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 62232 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">337955</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">nfds_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">nfds</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_NEXT</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">events</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">events</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 62232 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">62232</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot;Descriptors:</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 275723 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 62232 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">337955</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">nfds_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">nfds</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">events</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">events_to_string</span><span class="p">(</span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">events</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 275723 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 3 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">275723</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot; %d (%s)</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">events</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">events</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="s">&quot;&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">events</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">fds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">event_loop_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* Cache the number of event descriptors so that event handlers can</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * append new ones. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">nfds_t</span><span class="w"> </span><span class="n">nfds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">nfds</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">pollfd</span><span class="w"> </span><span class="o">*</span><span class="n">fds</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">make_pollfds</span><span class="p">(</span><span class="n">loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 62232 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">62232</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">fds</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">poll</span><span class="p">(</span><span class="n">fds</span><span class="p">,</span><span class="w"> </span><span class="n">nfds</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 62232 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">62232</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;poll&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="o">&amp;</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 275723 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 62232 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">337955</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">nfds_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">nfds</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_fd</span><span class="w"> </span><span class="o">*</span><span class="n">next</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_NEXT</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 211220 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 64503 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">revents</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">211220</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">next</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64503</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">events</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">events_to_string</span><span class="p">(</span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">revents</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 64503 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 3 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">64503</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot;Descriptor %d is ready: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">events</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">events</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="s">&quot;&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64503</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">events</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* Execute all handlers but notice if any of them fail. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64503</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">handler_ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">handler</span><span class="p">(</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">fds</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">revents</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">arg</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 64503 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">64503</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">handler_ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">handler_ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27703 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">64503</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">once</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_loop_remove</span><span class="p">(</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27703</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="nl">next</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">next</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">275723</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">continue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">fds</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">62232</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.file.c.0cc24881e570d19e625204519d50254f.html b/coverage/index.file.c.0cc24881e570d19e625204519d50254f.html
new file mode 100644
index 0000000..f7abbfe
--- /dev/null
+++ b/coverage/index.file.c.0cc24881e570d19e625204519d50254f.html
@@ -0,0 +1,1357 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/file.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>56</td>
+ <td>84</td>
+ <td class="coverage-low">66.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>8</td>
+ <td>8</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>20</td>
+ <td>52</td>
+ <td class="coverage-low">38.5%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l39">chdir_wrapper (line 39)</a></td><td>called 18360 times, returned 18360 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l115">file_close (line 115)</a></td><td>called 110566 times, returned 110566 times</td><td>30.0%</td></tr>
+ <tr><td><a href="#l102">file_dup (line 102)</a></td><td>called 9234 times, returned 9234 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l120">file_exists (line 120)</a></td><td>called 36720 times, returned 36720 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l127">file_read (line 127)</a></td><td>called 9180 times, returned 9180 times</td><td>38.0%</td></tr>
+ <tr><td><a href="#l66">readlink_wrapper (line 66)</a></td><td>called 20 times, returned 20 times</td><td>30.0%</td></tr>
+ <tr><td><a href="#l33">rm_rf (line 33)</a></td><td>called 9180 times, returned 9180 times</td><td>86.0%</td></tr>
+ <tr><td><a href="#l19">unlink_cb (line 19)</a></td><td>called 403663 times, returned 403663 times</td><td>33.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;fcntl.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;ftw.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/stat.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">403663</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">unlink_cb</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">fpath</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">stat</span><span class="w"> </span><span class="o">*</span><span class="n">sb</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">typeflag</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">FTW</span><span class="w"> </span><span class="o">*</span><span class="n">ftwbuf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">403663</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">403663</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">remove</span><span class="p">(</span><span class="n">fpath</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 403663 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">403663</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;remove&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">403663</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">rm_rf</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">dir</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Recursively removing directory: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">dir</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">nftw</span><span class="p">(</span><span class="n">dir</span><span class="p">,</span><span class="w"> </span><span class="n">unlink_cb</span><span class="p">,</span><span class="w"> </span><span class="mi">64</span><span class="p">,</span><span class="w"> </span><span class="n">FTW_DEPTH</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">FTW_PHYS</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">chdir_wrapper</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">dir</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">old</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">old</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">old</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_current_dir_name</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!*</span><span class="n">old</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;get_current_dir_name&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">chdir</span><span class="p">(</span><span class="n">dir</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18360 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18360</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;chdir&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_old</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_old</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">old</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="o">*</span><span class="n">old</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">readlink_wrapper</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">current_size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">256</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">tmp_buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">realloc</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">current_size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 20 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">20</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">tmp_buf</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;realloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp_buf</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">readlink</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">current_size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 20 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">20</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">res</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;readlink&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 20 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">20</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="kt">size_t</span><span class="p">)</span><span class="n">res</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">current_size</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">current_size</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">continue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">buf</span><span class="p">[</span><span class="n">res</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">&#39;\0&#39;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">20</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">buf</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">file_dup</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fcntl</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">F_DUPFD_CLOEXEC</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;fcntl&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110566</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">file_close</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 110566 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">110566</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_errno_if</span><span class="p">(</span><span class="n">close</span><span class="p">(</span><span class="n">fd</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;close&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110566</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">file_exists</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">stat</span><span class="w"> </span><span class="n">stat</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">lstat</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">stat</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">3/4</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ <div class="notTakenBranch">&cross; Branch 3 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36720</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">!</span><span class="n">ret</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">S_ISREG</span><span class="p">(</span><span class="n">stat</span><span class="p">.</span><span class="n">st_mode</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">file_read</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">_contents</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="o">*</span><span class="n">_size</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">alloc_size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">256</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">contents</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">144099</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">153279</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">tmp_contents</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">realloc</span><span class="p">(</span><span class="n">contents</span><span class="p">,</span><span class="w"> </span><span class="n">alloc_size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 153279 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">153279</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">tmp_contents</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;realloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">contents</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">153279</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">contents</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp_contents</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">153279</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">read_size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">read</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">contents</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">alloc_size</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 153279 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">153279</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">read_size</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;read&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">contents</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">read_size</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 144099 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">153279</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">read_size</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_contents</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">contents</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">size</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">144099</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">read_size</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 49896 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 94203 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">144099</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">size</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">alloc_size</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">49896</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">alloc_size</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.functions.html b/coverage/index.functions.html
new file mode 100644
index 0000000..3f52a63
--- /dev/null
+++ b/coverage/index.functions.html
@@ -0,0 +1,377 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>2020</td>
+ <td>2844</td>
+ <td class="coverage-low">71.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>281</td>
+ <td>294</td>
+ <td class="coverage-high">95.6%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>560</td>
+ <td>1409</td>
+ <td class="coverage-low">39.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+ </nav>
+
+ <main>
+<table class="listOfFunctions">
+ <tr>
+ <th>Function (File:Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l132">append_event (src/event_loop.c:132)</a></td><td>called 340226 times, returned 340226 times</td><td>75.0%</td></tr>
+ <tr><td><a href="index.base64.c.6cc41135837c80527c8f246c27adf87e.html#l35">base64_decode (src/base64.c:35)</a></td><td>called 9180 times, returned 9180 times</td><td>26.0%</td></tr>
+ <tr><td><a href="index.base64.c.6cc41135837c80527c8f246c27adf87e.html#l19">base64_encode (src/base64.c:19)</a></td><td>called 9180 times, returned 9180 times</td><td>38.0%</td></tr>
+ <tr><td><a href="index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html#l20">buf_create (src/buf.c:20)</a></td><td>called 92012 times, returned 92012 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html#l35">buf_create_from_string (src/buf.c:35)</a></td><td>called 46006 times, returned 46006 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html#l40">buf_destroy (src/buf.c:40)</a></td><td>called 92012 times, returned 92012 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html#l50">buf_get_data (src/buf.c:50)</a></td><td>called 138018 times, returned 138018 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html#l45">buf_get_size (src/buf.c:45)</a></td><td>called 92012 times, returned 92012 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l39">chdir_wrapper (src/file.c:39)</a></td><td>called 18360 times, returned 18360 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html#l53">ci_cleanup_git_repo (src/ci.c:53)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html#l59">ci_prepare_git_repo (src/ci.c:59)</a></td><td>called 9180 times, returned 9180 times</td><td>60.0%</td></tr>
+ <tr><td><a href="index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html#l40">ci_run (src/ci.c:40)</a></td><td>called 9180 times, returned 9180 times</td><td>63.0%</td></tr>
+ <tr><td><a href="index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html#l79">ci_run_git_repo (src/ci.c:79)</a></td><td>called 9180 times, returned 9180 times</td><td>81.0%</td></tr>
+ <tr><td><a href="index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html#l34">ci_run_script (src/ci.c:34)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html#l25">client_create (src/client.c:25)</a></td><td>called 9208 times, returned 9208 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l156">client_create (src/tcp_server.c:156)</a></td><td>called 27620 times, returned 27620 times</td><td>24.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l131">client_create_thread (src/tcp_server.c:131)</a></td><td>called 27620 times, returned 27620 times</td><td>50.0%</td></tr>
+ <tr><td><a href="index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html#l39">client_destroy (src/client.c:39)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l86">client_destroy (src/tcp_server.c:86)</a></td><td>called 27620 times, returned 27620 times</td><td>62.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l97">client_destroy_handler (src/tcp_server.c:97)</a></td><td>called 27620 times, returned 27620 times</td><td>75.0%</td></tr>
+ <tr><td><a href="index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html#l72">client_main (src/client.c:72)</a></td><td>called 9208 times, returned 9208 times</td><td>64.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l201">client_queue_create (src/tcp_server.c:201)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l206">client_queue_destroy (src/tcp_server.c:206)</a></td><td>called 29 times, returned 29 times</td><td>60.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l107">client_thread_func (src/tcp_server.c:107)</a></td><td>called 27620 times, returned 27620 times</td><td>54.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l66">cmd_dispatcher_create (src/command.c:66)</a></td><td>called 83 times, returned 83 times</td><td>24.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l102">cmd_dispatcher_destroy (src/command.c:102)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l128">cmd_dispatcher_handle (src/command.c:128)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l210">cmd_dispatcher_handle_conn (src/command.c:210)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l148">cmd_dispatcher_handle_conn_internal (src/command.c:148)</a></td><td>called 36800 times, returned 36800 times</td><td>72.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l215">cmd_dispatcher_handle_event (src/command.c:215)</a></td><td>called 9180 times, returned 9180 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l109">cmd_dispatcher_handle_internal (src/command.c:109)</a></td><td>called 36800 times, returned 36800 times</td><td>50.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l24">copy_cmd (src/command.c:24)</a></td><td>called 170 times, returned 170 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l40">copy_cmds (src/command.c:40)</a></td><td>called 83 times, returned 83 times</td><td>54.0%</td></tr>
+ <tr><td><a href="index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html#l16">default_settings (src/client_main.c:16)</a></td><td>called 9214 times, returned 9214 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html#l16">default_settings (src/server_main.c:16)</a></td><td>called 35 times, returned 35 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html#l16">default_settings (src/worker_main.c:16)</a></td><td>called 60 times, returned 60 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l29">event_fd_create (src/event_loop.c:29)</a></td><td>called 36966 times, returned 36966 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l46">event_fd_destroy (src/event_loop.c:46)</a></td><td>called 36966 times, returned 36966 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l51">event_fd_queue_create (src/event_loop.c:51)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l56">event_fd_queue_destroy (src/event_loop.c:56)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l103">event_loop_add (src/event_loop.c:103)</a></td><td>called 112 times, returned 112 times</td><td>83.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l94">event_loop_add_internal (src/event_loop.c:94)</a></td><td>called 36966 times, returned 36966 times</td><td>67.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l112">event_loop_add_once (src/event_loop.c:112)</a></td><td>called 36854 times, returned 36854 times</td><td>83.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l72">event_loop_create (src/event_loop.c:72)</a></td><td>called 83 times, returned 83 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l88">event_loop_destroy (src/event_loop.c:88)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l123">event_loop_remove (src/event_loop.c:123)</a></td><td>called 36800 times, returned 36800 times</td><td>73.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l190">event_loop_run (src/event_loop.c:190)</a></td><td>called 62232 times, returned 62232 times</td><td>58.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l139">events_to_string (src/event_loop.c:139)</a></td><td>called 340226 times, returned 340226 times</td><td>61.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l17">exec_child (src/process.c:17)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.cmd_line.c.fc55483624faae9ff92546137d095857.html#l42">exit_with_usage (src/cmd_line.c:42)</a></td><td>called 14 times, returned 0 time</td><td>89.0%</td></tr>
+ <tr><td><a href="index.cmd_line.c.fc55483624faae9ff92546137d095857.html#l55">exit_with_usage_err (src/cmd_line.c:55)</a></td><td>called 2 times, returned 0 time</td><td>100.0%</td></tr>
+ <tr><td><a href="index.cmd_line.c.fc55483624faae9ff92546137d095857.html#l62">exit_with_version (src/cmd_line.c:62)</a></td><td>called 6 times, returned 0 time</td><td>83.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l115">file_close (src/file.c:115)</a></td><td>called 110566 times, returned 110566 times</td><td>30.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l102">file_dup (src/file.c:102)</a></td><td>called 9234 times, returned 9234 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l120">file_exists (src/file.c:120)</a></td><td>called 36720 times, returned 36720 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l127">file_read (src/file.c:127)</a></td><td>called 9180 times, returned 9180 times</td><td>38.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l35">free_cmd (src/command.c:35)</a></td><td>called 170 times, returned 170 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l60">free_cmds (src/command.c:60)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l57">get_api (src/storage.c:57)</a></td><td>called 18502 times, returned 18502 times</td><td>36.0%</td></tr>
+ <tr><td><a href="index.cmd_line.c.fc55483624faae9ff92546137d095857.html#l22">get_current_binary_name (src/cmd_line.c:22)</a></td><td>called 20 times, returned 20 times</td><td>47.0%</td></tr>
+ <tr><td><a href="index.cmd_line.c.fc55483624faae9ff92546137d095857.html#l17">get_current_binary_path (src/cmd_line.c:17)</a></td><td>called 20 times, returned 20 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html#l25">get_usage_string (src/client_main.c:25)</a></td><td>called 6 times, returned 6 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html#l25">get_usage_string (src/server_main.c:25)</a></td><td>called 4 times, returned 4 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html#l25">get_usage_string (src/worker_main.c:25)</a></td><td>called 4 times, returned 4 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l151">jsonrpc_check_error (src/json_rpc.c:151)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l73">jsonrpc_check_id (src/json_rpc.c:73)</a></td><td>called 46006 times, returned 46006 times</td><td>50.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l63">jsonrpc_check_id_type (src/json_rpc.c:63)</a></td><td>called 18412 times, returned 18412 times</td><td>43.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l97">jsonrpc_check_method (src/json_rpc.c:97)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l120">jsonrpc_check_params (src/json_rpc.c:120)</a></td><td>called 36800 times, returned 36800 times</td><td>89.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l109">jsonrpc_check_params_type (src/json_rpc.c:109)</a></td><td>called 27540 times, returned 27540 times</td><td>29.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l179">jsonrpc_check_result_or_error (src/json_rpc.c:179)</a></td><td>called 9206 times, returned 9206 times</td><td>35.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l34">jsonrpc_check_version (src/json_rpc.c:34)</a></td><td>called 46006 times, returned 46006 times</td><td>40.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l463">jsonrpc_error_create (src/json_rpc.c:463)</a></td><td>called 9206 times, returned 9206 times</td><td>65.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l58">jsonrpc_generate_request_id (src/json_rpc.c:58)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l254">jsonrpc_notification_create (src/json_rpc.c:254)</a></td><td>called 27594 times, returned 27594 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l242">jsonrpc_request_create (src/json_rpc.c:242)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l195">jsonrpc_request_create_internal (src/json_rpc.c:195)</a></td><td>called 36800 times, returned 36800 times</td><td>45.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l329">jsonrpc_request_create_params (src/json_rpc.c:329)</a></td><td>called 73440 times, returned 73440 times</td><td>76.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l248">jsonrpc_request_destroy (src/json_rpc.c:248)</a></td><td>called 73600 times, returned 73600 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l265">jsonrpc_request_from_json (src/json_rpc.c:265)</a></td><td>called 36800 times, returned 36800 times</td><td>48.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l318">jsonrpc_request_get_method (src/json_rpc.c:318)</a></td><td>called 36800 times, returned 36800 times</td><td>83.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l375">jsonrpc_request_get_param_int (src/json_rpc.c:375)</a></td><td>called 27540 times, returned 27540 times</td><td>83.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l356">jsonrpc_request_get_param_string (src/json_rpc.c:356)</a></td><td>called 45900 times, returned 45900 times</td><td>83.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l260">jsonrpc_request_is_notification (src/json_rpc.c:260)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l298">jsonrpc_request_recv (src/json_rpc.c:298)</a></td><td>called 36800 times, returned 36800 times</td><td>35.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l293">jsonrpc_request_send (src/json_rpc.c:293)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l385">jsonrpc_request_set_param_int (src/json_rpc.c:385)</a></td><td>called 27540 times, returned 27540 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l366">jsonrpc_request_set_param_string (src/json_rpc.c:366)</a></td><td>called 45900 times, returned 45900 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l451">jsonrpc_response_create (src/json_rpc.c:451)</a></td><td>called 18412 times, returned 18412 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l398">jsonrpc_response_create_internal (src/json_rpc.c:398)</a></td><td>called 27618 times, returned 27618 times</td><td>50.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l457">jsonrpc_response_destroy (src/json_rpc.c:457)</a></td><td>called 36824 times, returned 36824 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l497">jsonrpc_response_from_json (src/json_rpc.c:497)</a></td><td>called 9206 times, returned 9206 times</td><td>45.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l492">jsonrpc_response_is_error (src/json_rpc.c:492)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l527">jsonrpc_response_recv (src/json_rpc.c:527)</a></td><td>called 9206 times, returned 9206 times</td><td>35.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l522">jsonrpc_response_send (src/json_rpc.c:522)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l393">jsonrpc_response_to_string (src/json_rpc.c:393)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l92">jsonrpc_set_id (src/json_rpc.c:92)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l104">jsonrpc_set_method (src/json_rpc.c:104)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l135">jsonrpc_set_params (src/json_rpc.c:135)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html#l51">jsonrpc_set_version (src/json_rpc.c:51)</a></td><td>called 64418 times, returned 64418 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html#l80">libgit_checkout (src/git.c:80)</a></td><td>called 9180 times, returned 9180 times</td><td>25.0%</td></tr>
+ <tr><td><a href="index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html#l40">libgit_clone (src/git.c:40)</a></td><td>called 9180 times, returned 9180 times</td><td>29.0%</td></tr>
+ <tr><td><a href="index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html#l63">libgit_clone_to_tmp (src/git.c:63)</a></td><td>called 9180 times, returned 9180 times</td><td>38.0%</td></tr>
+ <tr><td><a href="index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html#l22">libgit_init (src/git.c:22)</a></td><td>called 54 times, returned 54 times</td><td>24.0%</td></tr>
+ <tr><td><a href="index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html#l75">libgit_repository_free (src/git.c:75)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html#l35">libgit_shutdown (src/git.c:35)</a></td><td>called 54 times, returned 54 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l291">libjson_append (src/json.c:291)</a></td><td>called 9180 times, returned 9180 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l65">libjson_clone (src/json.c:65)</a></td><td>called 27618 times, returned 27618 times</td><td>78.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l26">libjson_free (src/json.c:26)</a></td><td>called 110424 times, returned 110424 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l51">libjson_from_string (src/json.c:51)</a></td><td>called 46006 times, returned 46006 times</td><td>24.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l149">libjson_get (src/json.c:149)</a></td><td>called 385956 times, returned 385956 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l176">libjson_get_int (src/json.c:176)</a></td><td>called 27540 times, returned 27540 times</td><td>35.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l159">libjson_get_string (src/json.c:159)</a></td><td>called 165506 times, returned 165506 times</td><td>47.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l144">libjson_has (src/json.c:144)</a></td><td>called 606620 times, returned 606620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l133">libjson_new_array (src/json.c:133)</a></td><td>called 26 times, returned 26 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l122">libjson_new_object (src/json.c:122)</a></td><td>called 110344 times, returned 110344 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l101">libjson_recv (src/json.c:101)</a></td><td>called 46006 times, returned 46006 times</td><td>85.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l83">libjson_send (src/json.c:83)</a></td><td>called 46006 times, returned 46006 times</td><td>82.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l256">libjson_set (src/json.c:256)</a></td><td>called 55158 times, returned 55158 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l276">libjson_set_const_key (src/json.c:276)</a></td><td>called 27618 times, returned 27618 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l266">libjson_set_int (src/json.c:266)</a></td><td>called 27540 times, returned 27540 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l286">libjson_set_int_const_key (src/json.c:286)</a></td><td>called 36772 times, returned 36772 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l235">libjson_set_int_internal (src/json.c:235)</a></td><td>called 64312 times, returned 64312 times</td><td>35.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l200">libjson_set_internal (src/json.c:200)</a></td><td>called 321772 times, returned 321772 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l261">libjson_set_string (src/json.c:261)</a></td><td>called 45900 times, returned 45900 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l281">libjson_set_string_const_key (src/json.c:281)</a></td><td>called 128784 times, returned 128784 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l214">libjson_set_string_internal (src/json.c:214)</a></td><td>called 174684 times, returned 174684 times</td><td>35.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l41">libjson_to_string (src/json.c:41)</a></td><td>called 46006 times, returned 46006 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l31">libjson_to_string_internal (src/json.c:31)</a></td><td>called 55212 times, returned 55212 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html#l46">libjson_to_string_pretty (src/json.c:46)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.log.c.47179e5db7ed3f2db741c99372ba24f3.html#l51">log_entry_end (src/log.c:51)</a></td><td>called 181825 times, returned 181825 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.log.c.47179e5db7ed3f2db741c99372ba24f3.html#l41">log_entry_start (src/log.c:41)</a></td><td>called 740909 times, returned 740909 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.log.c.47179e5db7ed3f2db741c99372ba24f3.html#l36">log_prefix_thread_id (src/log.c:36)</a></td><td>called 181825 times, returned 181825 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.log.c.47179e5db7ed3f2db741c99372ba24f3.html#l17">log_prefix_timestamp (src/log.c:17)</a></td><td>called 181825 times, returned 181825 times</td><td>70.0%</td></tr>
+ <tr><td><a href="index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html#l76">main (src/client_main.c:76)</a></td><td>called 9214 times, returned 9214 times</td><td>79.0%</td></tr>
+ <tr><td><a href="index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html#l73">main (src/server_main.c:73)</a></td><td>called 35 times, returned 29 times</td><td>79.0%</td></tr>
+ <tr><td><a href="index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html#l73">main (src/worker_main.c:73)</a></td><td>called 60 times, returned 54 times</td><td>79.0%</td></tr>
+ <tr><td><a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html#l134">make_conn_ctx (src/command.c:134)</a></td><td>called 36800 times, returned 36800 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html#l166">make_pollfds (src/event_loop.c:166)</a></td><td>called 62232 times, returned 62232 times</td><td>52.0%</td></tr>
+ <tr><td><a href="index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html#l44">make_request (src/client.c:44)</a></td><td>called 9208 times, returned 9208 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l95">net_accept (src/net.c:95)</a></td><td>called 27620 times, returned 27620 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l23">net_bind (src/net.c:23)</a></td><td>called 29 times, returned 29 times</td><td>26.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l154">net_close (src/net.c:154)</a></td><td>called 64503 times, returned 64503 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l109">net_connect (src/net.c:109)</a></td><td>called 27620 times, returned 27620 times</td><td>29.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l187">net_recv (src/net.c:187)</a></td><td>called 92012 times, returned 92012 times</td><td>35.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l228">net_recv_buf (src/net.c:228)</a></td><td>called 46006 times, returned 46006 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l172">net_send (src/net.c:172)</a></td><td>called 92012 times, returned 92012 times</td><td>88.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l212">net_send_buf (src/net.c:212)</a></td><td>called 46006 times, returned 46006 times</td><td>83.0%</td></tr>
+ <tr><td><a href="index.net.c.37012fce13860cefc5963f57e0f36732.html#l159">net_send_part (src/net.c:159)</a></td><td>called 92012 times, returned 92012 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l52">numof_apis (src/storage.c:52)</a></td><td>called 18502 times, returned 18502 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html#l33">parse_settings (src/client_main.c:33)</a></td><td>called 9214 times, returned 9214 times</td><td>76.0%</td></tr>
+ <tr><td><a href="index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html#l30">parse_settings (src/server_main.c:30)</a></td><td>called 35 times, returned 29 times</td><td>76.0%</td></tr>
+ <tr><td><a href="index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html#l30">parse_settings (src/worker_main.c:30)</a></td><td>called 60 times, returned 54 times</td><td>76.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l84">prepared_stmt_destroy (src/storage_sqlite.c:84)</a></td><td>called 174 times, returned 174 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l62">prepared_stmt_init (src/storage_sqlite.c:62)</a></td><td>called 174 times, returned 174 times</td><td>23.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l90">prepared_stmt_lock (src/storage_sqlite.c:90)</a></td><td>called 36775 times, returned 36775 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l100">prepared_stmt_unlock (src/storage_sqlite.c:100)</a></td><td>called 36775 times, returned 36775 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l61">process_execute (src/process.c:61)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l96">process_execute_and_capture (src/process.c:96)</a></td><td>called 9180 times, returned 9180 times</td><td>43.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l141">process_output_create (src/process.c:141)</a></td><td>called 18360 times, returned 18360 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l157">process_output_destroy (src/process.c:157)</a></td><td>called 18360 times, returned 18360 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l163">process_output_dump (src/process.c:163)</a></td><td>called 9180 times, returned 9180 times</td><td>82.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l66">readlink_wrapper (src/file.c:66)</a></td><td>called 20 times, returned 20 times</td><td>30.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l75">redirect_and_exec_child (src/process.c:75)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l122">request_create_finished_run (src/protocol.c:122)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l195">request_create_get_runs (src/protocol.c:195)</a></td><td>called 26 times, returned 26 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l63">request_create_new_worker (src/protocol.c:63)</a></td><td>called 9234 times, returned 9234 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l25">request_create_queue_run (src/protocol.c:25)</a></td><td>called 9180 times, returned 9180 times</td><td>69.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l73">request_create_start_run (src/protocol.c:73)</a></td><td>called 9180 times, returned 9180 times</td><td>68.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l155">request_parse_finished_run (src/protocol.c:155)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l200">request_parse_get_runs (src/protocol.c:200)</a></td><td>called 26 times, returned 26 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l68">request_parse_new_worker (src/protocol.c:68)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l47">request_parse_queue_run (src/protocol.c:47)</a></td><td>called 9180 times, returned 9180 times</td><td>78.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l98">request_parse_start_run (src/protocol.c:98)</a></td><td>called 9180 times, returned 9180 times</td><td>75.0%</td></tr>
+ <tr><td><a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html#l205">response_create_get_runs (src/protocol.c:205)</a></td><td>called 26 times, returned 26 times</td><td>64.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l33">rm_rf (src/file.c:33)</a></td><td>called 9180 times, returned 9180 times</td><td>86.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l80">run_created (src/run_queue.c:80)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l68">run_destroy (src/run_queue.c:68)</a></td><td>called 36720 times, returned 36720 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l115">run_get_id (src/run_queue.c:115)</a></td><td>called 45900 times, returned 45900 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l125">run_get_repo_rev (src/run_queue.c:125)</a></td><td>called 36720 times, returned 36720 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l120">run_get_repo_url (src/run_queue.c:120)</a></td><td>called 64260 times, returned 64260 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l28">run_new (src/run_queue.c:28)</a></td><td>called 36720 times, returned 36720 times</td><td>21.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l189">run_queue_add_first (src/run_queue.c:189)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l194">run_queue_add_last (src/run_queue.c:194)</a></td><td>called 18360 times, returned 18360 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l135">run_queue_create (src/run_queue.c:135)</a></td><td>called 55 times, returned 55 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l140">run_queue_destroy (src/run_queue.c:140)</a></td><td>called 55 times, returned 55 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l184">run_queue_is_empty (src/run_queue.c:184)</a></td><td>called 27431 times, returned 27431 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l199">run_queue_remove_first (src/run_queue.c:199)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l151">run_queue_to_json (src/run_queue.c:151)</a></td><td>called 26 times, returned 26 times</td><td>63.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l75">run_queued (src/run_queue.c:75)</a></td><td>called 18360 times, returned 18360 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l130">run_set_id (src/run_queue.c:130)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html#l85">run_to_json (src/run_queue.c:85)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l164">server_assign_run (src/server.c:164)</a></td><td>called 9180 times, returned 9180 times</td><td>70.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l358">server_create (src/server.c:358)</a></td><td>called 29 times, returned 29 times</td><td>29.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l463">server_destroy (src/server.c:463)</a></td><td>called 29 times, returned 29 times</td><td>42.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l124">server_enqueue_run (src/server.c:124)</a></td><td>called 9180 times, returned 9180 times</td><td>86.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l103">server_enqueue_worker (src/server.c:103)</a></td><td>called 9234 times, returned 9234 times</td><td>86.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l292">server_handle_cmd_finished_run (src/server.c:292)</a></td><td>called 9180 times, returned 9180 times</td><td>55.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l320">server_handle_cmd_get_runs (src/server.c:320)</a></td><td>called 26 times, returned 26 times</td><td>52.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l226">server_handle_cmd_new_worker (src/server.c:226)</a></td><td>called 9234 times, returned 9234 times</td><td>60.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l259">server_handle_cmd_queue_run (src/server.c:259)</a></td><td>called 9180 times, returned 9180 times</td><td>56.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l119">server_has_runs (src/server.c:119)</a></td><td>called 27431 times, returned 27431 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l98">server_has_workers (src/server.c:98)</a></td><td>called 27215 times, returned 27215 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l480">server_listen_thread (src/server.c:480)</a></td><td>called 29 times, returned 29 times</td><td>85.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l51">server_lock (src/server.c:51)</a></td><td>called 18472 times, returned 18472 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l495">server_main (src/server.c:495)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l199">server_main_thread (src/server.c:199)</a></td><td>called 29 times, returned 29 times</td><td>86.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l76">server_notify (src/server.c:76)</a></td><td>called 18443 times, returned 18443 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l146">server_ready_for_action (src/server.c:146)</a></td><td>called 27460 times, returned 27460 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l81">server_set_stopping (src/server.c:81)</a></td><td>called 29 times, returned 29 times</td><td>86.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l61">server_unlock (src/server.c:61)</a></td><td>called 18472 times, returned 18472 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l66">server_wait (src/server.c:66)</a></td><td>called 18251 times, returned 18251 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html#l151">server_wait_for_action (src/server.c:151)</a></td><td>called 9209 times, returned 9209 times</td><td>89.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l43">signal_block_all (src/signal.c:43)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l50">signal_block_sigterms (src/signal.c:50)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l38">signal_set_mask (src/signal.c:38)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l25">signal_set_mask_internal (src/signal.c:25)</a></td><td>called 82943 times, returned 82943 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l57">signalfd_create (src/signal.c:57)</a></td><td>called 83 times, returned 83 times</td><td>64.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l79">signalfd_create_sigterms (src/signal.c:79)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l86">signalfd_destroy (src/signal.c:86)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html#l18">sigterms_mask (src/signal.c:18)</a></td><td>called 27703 times, returned 27703 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l235">sqlite_bind_blob (src/sqlite.c:235)</a></td><td>called 9180 times, returned 9180 times</td><td>31.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l209">sqlite_bind_int (src/sqlite.c:209)</a></td><td>called 45929 times, returned 45929 times</td><td>31.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l222">sqlite_bind_text (src/sqlite.c:222)</a></td><td>called 27540 times, returned 27540 times</td><td>31.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l75">sqlite_close (src/sqlite.c:75)</a></td><td>called 29 times, returned 29 times</td><td>25.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l179">sqlite_column_blob (src/sqlite.c:179)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l144">sqlite_column_int (src/sqlite.c:144)</a></td><td>called 45929 times, returned 45929 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l149">sqlite_column_text (src/sqlite.c:149)</a></td><td>called 18360 times, returned 18360 times</td><td>22.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l45">sqlite_destroy (src/sqlite.c:45)</a></td><td>called 29 times, returned 29 times</td><td>25.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l80">sqlite_exec (src/sqlite.c:80)</a></td><td>called 58 times, returned 58 times</td><td>31.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l248">sqlite_exec_as_transaction (src/sqlite.c:248)</a></td><td>called 29 times, returned 29 times</td><td>38.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l93">sqlite_exec_log_result (src/sqlite.c:93)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l121">sqlite_finalize (src/sqlite.c:121)</a></td><td>called 203 times, returned 203 times</td><td>25.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l273">sqlite_get_user_version (src/sqlite.c:273)</a></td><td>called 29 times, returned 29 times</td><td>40.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l32">sqlite_init (src/sqlite.c:32)</a></td><td>called 29 times, returned 29 times</td><td>31.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l50">sqlite_open (src/sqlite.c:50)</a></td><td>called 29 times, returned 29 times</td><td>31.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l69">sqlite_open_ro (src/sqlite.c:69)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l63">sqlite_open_rw (src/sqlite.c:63)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l102">sqlite_prepare (src/sqlite.c:102)</a></td><td>called 203 times, returned 203 times</td><td>31.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l115">sqlite_reset (src/sqlite.c:115)</a></td><td>called 36775 times, returned 36775 times</td><td>22.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l308">sqlite_set_foreign_keys (src/sqlite.c:308)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html#l126">sqlite_step (src/sqlite.c:126)</a></td><td>called 45984 times, returned 45984 times</td><td>36.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l79">storage_create (src/storage.c:79)</a></td><td>called 29 times, returned 29 times</td><td>75.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l92">storage_destroy (src/storage.c:92)</a></td><td>called 29 times, returned 29 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l124">storage_get_run_queue (src/storage.c:124)</a></td><td>called 29 times, returned 29 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l116">storage_get_runs (src/storage.c:116)</a></td><td>called 26 times, returned 26 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l100">storage_run_create (src/storage.c:100)</a></td><td>called 9180 times, returned 9180 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l108">storage_run_finished (src/storage.c:108)</a></td><td>called 9180 times, returned 9180 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html#l71">storage_settings_destroy (src/storage.c:71)</a></td><td>called 29 times, returned 29 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l261">storage_sqlite_create (src/storage_sqlite.c:261)</a></td><td>called 29 times, returned 29 times</td><td>48.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l299">storage_sqlite_destroy (src/storage_sqlite.c:299)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l251">storage_sqlite_finalize_statements (src/storage_sqlite.c:251)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l307">storage_sqlite_find_repo (src/storage_sqlite.c:307)</a></td><td>called 9180 times, returned 9180 times</td><td>76.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l526">storage_sqlite_get_run_queue (src/storage_sqlite.c:526)</a></td><td>called 29 times, returned 29 times</td><td>79.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l507">storage_sqlite_get_runs (src/storage_sqlite.c:507)</a></td><td>called 26 times, returned 26 times</td><td>82.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l335">storage_sqlite_insert_repo (src/storage_sqlite.c:335)</a></td><td>called 9180 times, returned 9180 times</td><td>75.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l360">storage_sqlite_insert_run (src/storage_sqlite.c:360)</a></td><td>called 9180 times, returned 9180 times</td><td>57.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l200">storage_sqlite_prepare_statements (src/storage_sqlite.c:200)</a></td><td>called 29 times, returned 29 times</td><td>54.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l444">storage_sqlite_row_to_run (src/storage_sqlite.c:444)</a></td><td>called 9180 times, returned 9180 times</td><td>81.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l477">storage_sqlite_rows_to_runs (src/storage_sqlite.c:477)</a></td><td>called 55 times, returned 55 times</td><td>67.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l397">storage_sqlite_run_create (src/storage_sqlite.c:397)</a></td><td>called 9180 times, returned 9180 times</td><td>75.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l412">storage_sqlite_run_finished (src/storage_sqlite.c:412)</a></td><td>called 9180 times, returned 9180 times</td><td>74.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l27">storage_sqlite_settings_create (src/storage_sqlite.c:27)</a></td><td>called 29 times, returned 29 times</td><td>23.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l51">storage_sqlite_settings_destroy (src/storage_sqlite.c:51)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l185">storage_sqlite_setup (src/storage_sqlite.c:185)</a></td><td>called 29 times, returned 29 times</td><td>75.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l159">storage_sqlite_upgrade (src/storage_sqlite.c:159)</a></td><td>called 29 times, returned 29 times</td><td>47.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l143">storage_sqlite_upgrade_from_to (src/storage_sqlite.c:143)</a></td><td>called 29 times, returned 29 times</td><td>55.0%</td></tr>
+ <tr><td><a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html#l116">storage_sqlite_upgrade_to (src/storage_sqlite.c:116)</a></td><td>called 29 times, returned 29 times</td><td>38.0%</td></tr>
+ <tr><td><a href="index.string.c.2a75186e465ffeac1b306a350f4a56f8.html#l17">string_append (src/string.c:17)</a></td><td>called 340226 times, returned 340226 times</td><td>67.0%</td></tr>
+ <tr><td><a href="index.string.c.2a75186e465ffeac1b306a350f4a56f8.html#l32">string_to_int (src/string.c:32)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l268">tcp_server_accept (src/tcp_server.c:268)</a></td><td>called 27620 times, returned 27620 times</td><td>60.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l216">tcp_server_accept_handler (src/tcp_server.c:216)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l223">tcp_server_create (src/tcp_server.c:223)</a></td><td>called 29 times, returned 29 times</td><td>40.0%</td></tr>
+ <tr><td><a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html#l261">tcp_server_destroy (src/tcp_server.c:261)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.file.c.0cc24881e570d19e625204519d50254f.html#l19">unlink_cb (src/file.c:19)</a></td><td>called 403663 times, returned 403663 times</td><td>33.0%</td></tr>
+ <tr><td><a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html#l33">wait_for_child (src/process.c:33)</a></td><td>called 9180 times, returned 9180 times</td><td>36.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l105">worker_create (src/worker.c:105)</a></td><td>called 54 times, returned 54 times</td><td>44.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l20">worker_create (src/worker_queue.c:20)</a></td><td>called 9234 times, returned 9234 times</td><td>27.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l166">worker_destroy (src/worker.c:166)</a></td><td>called 54 times, returned 54 times</td><td>91.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l34">worker_destroy (src/worker_queue.c:34)</a></td><td>called 9234 times, returned 9234 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l178">worker_do_run (src/worker.c:178)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l40">worker_get_fd (src/worker_queue.c:40)</a></td><td>called 36774 times, returned 36774 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l224">worker_get_run (src/worker.c:224)</a></td><td>called 9234 times, returned 9234 times</td><td>77.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l85">worker_handle_cmd_start_run (src/worker.c:85)</a></td><td>called 9180 times, returned 9180 times</td><td>80.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l260">worker_main (src/worker.c:260)</a></td><td>called 54 times, returned 54 times</td><td>83.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l66">worker_queue_add_first (src/worker_queue.c:66)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l71">worker_queue_add_last (src/worker_queue.c:71)</a></td><td>called 9234 times, returned 9234 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l45">worker_queue_create (src/worker_queue.c:45)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l50">worker_queue_destroy (src/worker_queue.c:50)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l61">worker_queue_is_empty (src/worker_queue.c:61)</a></td><td>called 27215 times, returned 27215 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html#l76">worker_queue_remove_first (src/worker_queue.c:76)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l77">worker_set_stopping (src/worker.c:77)</a></td><td>called 54 times, returned 54 times</td><td>100.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l39">worker_settings_copy (src/worker.c:39)</a></td><td>called 54 times, returned 54 times</td><td>21.0%</td></tr>
+ <tr><td><a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html#l70">worker_settings_destroy (src/worker.c:70)</a></td><td>called 54 times, returned 54 times</td><td>100.0%</td></tr>
+</table>
+
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html b/coverage/index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html
new file mode 100644
index 0000000..2f01a55
--- /dev/null
+++ b/coverage/index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html
@@ -0,0 +1,1001 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/git.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>39</td>
+ <td>55</td>
+ <td class="coverage-low">70.9%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>6</td>
+ <td>6</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>10</td>
+ <td>64</td>
+ <td class="coverage-low">15.6%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l80">libgit_checkout (line 80)</a></td><td>called 9180 times, returned 9180 times</td><td>25.0%</td></tr>
+ <tr><td><a href="#l40">libgit_clone (line 40)</a></td><td>called 9180 times, returned 9180 times</td><td>29.0%</td></tr>
+ <tr><td><a href="#l63">libgit_clone_to_tmp (line 63)</a></td><td>called 9180 times, returned 9180 times</td><td>38.0%</td></tr>
+ <tr><td><a href="#l22">libgit_init (line 22)</a></td><td>called 54 times, returned 54 times</td><td>24.0%</td></tr>
+ <tr><td><a href="#l75">libgit_repository_free (line 75)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l35">libgit_shutdown (line 35)</a></td><td>called 54 times, returned 54 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;git.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;git2.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#define git_log_err(fn) \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> do { \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> const git_error *error = git_error_last(); \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> const char *msg = error &amp;&amp; error-&gt;message ? error-&gt;message : &quot;???&quot;; \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> log_err(&quot;%s: %s\n&quot;, fn, msg); \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> } while (0)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libgit_init</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">git_libgit2_init</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">git_log_err</span><span class="p">(</span><span class="s">&quot;git_libgit2_init&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">libgit_shutdown</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">git_libgit2_shutdown</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libgit_clone</span><span class="p">(</span><span class="n">git_repository</span><span class="w"> </span><span class="o">**</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">dir</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">git_clone_options</span><span class="w"> </span><span class="n">opts</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Cloning git repository from %s to %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">dir</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">git_clone_options_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">opts</span><span class="p">,</span><span class="w"> </span><span class="n">GIT_CLONE_OPTIONS_VERSION</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">git_log_err</span><span class="p">(</span><span class="s">&quot;git_clone_options_init&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">opts</span><span class="p">.</span><span class="n">checkout_opts</span><span class="p">.</span><span class="n">checkout_strategy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">GIT_CHECKOUT_NONE</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">git_clone</span><span class="p">(</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">dir</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">opts</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">git_log_err</span><span class="p">(</span><span class="s">&quot;git_clone&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libgit_clone_to_tmp</span><span class="p">(</span><span class="n">git_repository</span><span class="w"> </span><span class="o">**</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">dir</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;/tmp/git.XXXXXX&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">mkdtemp</span><span class="p">(</span><span class="n">dir</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;mkdtemp&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libgit_clone</span><span class="p">(</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">dir</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">libgit_repository_free</span><span class="p">(</span><span class="n">git_repository</span><span class="w"> </span><span class="o">*</span><span class="n">repo</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">git_repository_free</span><span class="p">(</span><span class="n">repo</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libgit_checkout</span><span class="p">(</span><span class="n">git_repository</span><span class="w"> </span><span class="o">*</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">git_checkout_options</span><span class="w"> </span><span class="n">opts</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">git_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Checking out revision %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">git_revparse_single</span><span class="p">(</span><span class="o">&amp;</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">git_log_err</span><span class="p">(</span><span class="s">&quot;git_revparse_single&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">git_checkout_options_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">opts</span><span class="p">,</span><span class="w"> </span><span class="n">GIT_CHECKOUT_OPTIONS_VERSION</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">git_log_err</span><span class="p">(</span><span class="s">&quot;git_checkout_options_init&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_obj</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">opts</span><span class="p">.</span><span class="n">checkout_strategy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">GIT_CHECKOUT_FORCE</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">git_checkout_tree</span><span class="p">(</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">opts</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">git_log_err</span><span class="p">(</span><span class="s">&quot;git_checkout_tree&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_obj</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">git_repository_set_head_detached</span><span class="p">(</span><span class="n">repo</span><span class="p">,</span><span class="w"> </span><span class="n">git_object_id</span><span class="p">(</span><span class="n">obj</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">git_log_err</span><span class="p">(</span><span class="s">&quot;git_repository_set_head_detached&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_obj</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">free_obj</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">git_object_free</span><span class="p">(</span><span class="n">obj</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.html b/coverage/index.html
new file mode 100644
index 0000000..023a139
--- /dev/null
+++ b/coverage/index.html
@@ -0,0 +1,546 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ <tr>
+ <th scope="row">Coverage:</th>
+ <td class="legend">
+ <span class="coverage-low">low: &ge; 0%</span>
+ <span class="coverage-medium">medium: &ge; 75.0%</span>
+ <span class="coverage-high">high: &ge; 90.0%</span>
+ </td>
+ </tr>
+ </table>
+</div>
+
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>2020</td>
+ <td>2844</td>
+ <td class="coverage-low">71.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>281</td>
+ <td>294</td>
+ <td class="coverage-high">95.6%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>560</td>
+ <td>1409</td>
+ <td class="coverage-low">39.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<a href="index.functions.html">List of functions</a>
+ </nav>
+
+ <main>
+<table class="file-list">
+ <col/>
+ <colgroup span="3"/>
+ <colgroup span="2"/>
+ <colgroup span="2"/>
+
+ <tr>
+ <th scope="col">File</th>
+ <th scope="colgroup" colspan=3>Lines</th>
+ <th scope="colgroup" colspan=2>Functions</th>
+ <th scope="colgroup" colspan=2>Branches</th>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.base64.c.6cc41135837c80527c8f246c27adf87e.html">base64.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="66.7" title="66.7%">66.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">66.7%</td>
+ <td class="CoverValue line-coverage coverage-low">18 / 27</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">2 / 2</td>
+ <td class="CoverValue branch-coverage coverage-low">25.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">3 / 12</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html">buf.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="88.9" title="88.9%">88.9</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">88.9%</td>
+ <td class="CoverValue line-coverage coverage-medium">16 / 18</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">5 / 5</td>
+ <td class="CoverValue branch-coverage coverage-low">25.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">1 / 4</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html">ci.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="78.7" title="78.7%">78.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">78.7%</td>
+ <td class="CoverValue line-coverage coverage-medium">37 / 47</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">5 / 5</td>
+ <td class="CoverValue branch-coverage coverage-low">50.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">9 / 18</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html">client.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="80.6" title="80.6%">80.6</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">80.6%</td>
+ <td class="CoverValue line-coverage coverage-medium">50 / 62</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">4 / 4</td>
+ <td class="CoverValue branch-coverage coverage-low">56.7%</td>
+ <td class="CoverValue branch-coverage coverage-low">17 / 30</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html">client_main.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="79.1" title="79.1%">79.1</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">79.1%</td>
+ <td class="CoverValue line-coverage coverage-medium">34 / 43</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">4 / 4</td>
+ <td class="CoverValue branch-coverage coverage-low">71.4%</td>
+ <td class="CoverValue branch-coverage coverage-low">10 / 14</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.cmd_line.c.fc55483624faae9ff92546137d095857.html">cmd_line.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="87.5" title="87.5%">87.5</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">87.5%</td>
+ <td class="CoverValue line-coverage coverage-medium">28 / 32</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">5 / 5</td>
+ <td class="CoverValue branch-coverage coverage-low">50.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">7 / 14</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.command.c.d26991ef13eb41283f88bf34125ef986.html">command.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="74.2" title="74.2%">74.2</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">74.2%</td>
+ <td class="CoverValue line-coverage coverage-low">89 / 120</td>
+ <td class="CoverValue function-coverage coverage-high">91.7%</td>
+ <td class="CoverValue function-coverage coverage-high">11 / 12</td>
+ <td class="CoverValue branch-coverage coverage-low">50.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">33 / 66</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html">event_loop.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="84.7" title="84.7%">84.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">84.7%</td>
+ <td class="CoverValue line-coverage coverage-medium">111 / 131</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">14 / 14</td>
+ <td class="CoverValue branch-coverage coverage-low">51.3%</td>
+ <td class="CoverValue branch-coverage coverage-low">39 / 76</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.file.c.0cc24881e570d19e625204519d50254f.html">file.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="66.7" title="66.7%">66.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">66.7%</td>
+ <td class="CoverValue line-coverage coverage-low">56 / 84</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">8 / 8</td>
+ <td class="CoverValue branch-coverage coverage-low">38.5%</td>
+ <td class="CoverValue branch-coverage coverage-low">20 / 52</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html">git.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="70.9" title="70.9%">70.9</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">70.9%</td>
+ <td class="CoverValue line-coverage coverage-low">39 / 55</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">6 / 6</td>
+ <td class="CoverValue branch-coverage coverage-low">15.6%</td>
+ <td class="CoverValue branch-coverage coverage-low">10 / 64</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.json.c.9fe0913c76249e448eec3131d7e8b263.html">json.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="73.2" title="73.2%">73.2</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">73.2%</td>
+ <td class="CoverValue line-coverage coverage-low">112 / 153</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">24 / 24</td>
+ <td class="CoverValue branch-coverage coverage-low">31.4%</td>
+ <td class="CoverValue branch-coverage coverage-low">22 / 70</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html">json_rpc.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="65.7" title="65.7%">65.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">65.7%</td>
+ <td class="CoverValue line-coverage coverage-low">201 / 306</td>
+ <td class="CoverValue function-coverage coverage-high">94.4%</td>
+ <td class="CoverValue function-coverage coverage-high">34 / 36</td>
+ <td class="CoverValue branch-coverage coverage-low">39.7%</td>
+ <td class="CoverValue branch-coverage coverage-low">58 / 146</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.log.c.47179e5db7ed3f2db741c99372ba24f3.html">log.c</a>
+ </th>
+ <td>
+ <meter class="coverage-high" min="0" max="100" value="91.7" title="91.7%">91.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-high">91.7%</td>
+ <td class="CoverValue line-coverage coverage-high">22 / 24</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">4 / 4</td>
+ <td class="CoverValue branch-coverage coverage-low">66.7%</td>
+ <td class="CoverValue branch-coverage coverage-low">4 / 6</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.net.c.37012fce13860cefc5963f57e0f36732.html">net.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="62.6" title="62.6%">62.6</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">62.6%</td>
+ <td class="CoverValue line-coverage coverage-low">87 / 139</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">9 / 9</td>
+ <td class="CoverValue branch-coverage coverage-low">32.6%</td>
+ <td class="CoverValue branch-coverage coverage-low">30 / 92</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html">process.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="48.8" title="48.8%">48.8</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">48.8%</td>
+ <td class="CoverValue line-coverage coverage-low">41 / 84</td>
+ <td class="CoverValue function-coverage coverage-low">62.5%</td>
+ <td class="CoverValue function-coverage coverage-low">5 / 8</td>
+ <td class="CoverValue branch-coverage coverage-low">23.1%</td>
+ <td class="CoverValue branch-coverage coverage-low">12 / 52</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html">protocol.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="68.7" title="68.7%">68.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">68.7%</td>
+ <td class="CoverValue line-coverage coverage-low">90 / 131</td>
+ <td class="CoverValue function-coverage coverage-high">90.9%</td>
+ <td class="CoverValue function-coverage coverage-high">10 / 11</td>
+ <td class="CoverValue branch-coverage coverage-low">50.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">24 / 48</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html">run_queue.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="73.0" title="73.0%">73.0</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">73.0%</td>
+ <td class="CoverValue line-coverage coverage-low">81 / 111</td>
+ <td class="CoverValue function-coverage coverage-high">93.8%</td>
+ <td class="CoverValue function-coverage coverage-high">15 / 16</td>
+ <td class="CoverValue branch-coverage coverage-low">47.2%</td>
+ <td class="CoverValue branch-coverage coverage-low">17 / 36</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html">server.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="71.7" title="71.7%">71.7</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">71.7%</td>
+ <td class="CoverValue line-coverage coverage-low">195 / 272</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">21 / 21</td>
+ <td class="CoverValue branch-coverage coverage-low">41.8%</td>
+ <td class="CoverValue branch-coverage coverage-low">61 / 146</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html">server_main.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="79.1" title="79.1%">79.1</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">79.1%</td>
+ <td class="CoverValue line-coverage coverage-medium">34 / 43</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">4 / 4</td>
+ <td class="CoverValue branch-coverage coverage-low">71.4%</td>
+ <td class="CoverValue branch-coverage coverage-low">10 / 14</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.signal.c.71d63611c8a63e0778dd598afad76dfd.html">signal.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="81.6" title="81.6%">81.6</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">81.6%</td>
+ <td class="CoverValue line-coverage coverage-medium">31 / 38</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">8 / 8</td>
+ <td class="CoverValue branch-coverage coverage-low">50.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">5 / 10</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html">sqlite.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="62.3" title="62.3%">62.3</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">62.3%</td>
+ <td class="CoverValue line-coverage coverage-low">101 / 162</td>
+ <td class="CoverValue function-coverage coverage-medium">85.7%</td>
+ <td class="CoverValue function-coverage coverage-medium">18 / 21</td>
+ <td class="CoverValue branch-coverage coverage-low">22.1%</td>
+ <td class="CoverValue branch-coverage coverage-low">21 / 95</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.storage.c.96d197609feea4b630e7b775fb18af81.html">storage.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="75.5" title="75.5%">75.5</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">75.5%</td>
+ <td class="CoverValue line-coverage coverage-medium">37 / 49</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">9 / 9</td>
+ <td class="CoverValue branch-coverage coverage-low">45.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">9 / 20</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html">storage_sqlite.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="72.5" title="72.5%">72.5</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">72.5%</td>
+ <td class="CoverValue line-coverage coverage-low">245 / 338</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">23 / 23</td>
+ <td class="CoverValue branch-coverage coverage-low">42.3%</td>
+ <td class="CoverValue branch-coverage coverage-low">66 / 156</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.string.c.2a75186e465ffeac1b306a350f4a56f8.html">string.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="27.3" title="27.3%">27.3</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">27.3%</td>
+ <td class="CoverValue line-coverage coverage-low">6 / 22</td>
+ <td class="CoverValue function-coverage coverage-low">50.0%</td>
+ <td class="CoverValue function-coverage coverage-low">1 / 2</td>
+ <td class="CoverValue branch-coverage coverage-low">18.8%</td>
+ <td class="CoverValue branch-coverage coverage-low">3 / 16</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html">tcp_server.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="71.3" title="71.3%">71.3</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">71.3%</td>
+ <td class="CoverValue line-coverage coverage-low">87 / 122</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">11 / 11</td>
+ <td class="CoverValue branch-coverage coverage-low">40.9%</td>
+ <td class="CoverValue branch-coverage coverage-low">27 / 66</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html">worker.c</a>
+ </th>
+ <td>
+ <meter class="coverage-low" min="0" max="100" value="70.2" title="70.2%">70.2</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">70.2%</td>
+ <td class="CoverValue line-coverage coverage-low">106 / 151</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">9 / 9</td>
+ <td class="CoverValue branch-coverage coverage-low">43.5%</td>
+ <td class="CoverValue branch-coverage coverage-low">27 / 62</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html">worker_main.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="79.1" title="79.1%">79.1</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">79.1%</td>
+ <td class="CoverValue line-coverage coverage-medium">34 / 43</td>
+ <td class="CoverValue function-coverage coverage-high">100.0%</td>
+ <td class="CoverValue function-coverage coverage-high">4 / 4</td>
+ <td class="CoverValue branch-coverage coverage-low">71.4%</td>
+ <td class="CoverValue branch-coverage coverage-low">10 / 14</td>
+ </tr>
+
+
+ <tr>
+ <th scope="row">
+ <a href="index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html">worker_queue.c</a>
+ </th>
+ <td>
+ <meter class="coverage-medium" min="0" max="100" value="86.5" title="86.5%">86.5</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-medium">86.5%</td>
+ <td class="CoverValue line-coverage coverage-medium">32 / 37</td>
+ <td class="CoverValue function-coverage coverage-medium">88.9%</td>
+ <td class="CoverValue function-coverage coverage-medium">8 / 9</td>
+ <td class="CoverValue branch-coverage coverage-low">50.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">5 / 10</td>
+ </tr>
+
+</table>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.json.c.9fe0913c76249e448eec3131d7e8b263.html b/coverage/index.json.c.9fe0913c76249e448eec3131d7e8b263.html
new file mode 100644
index 0000000..1a4065d
--- /dev/null
+++ b/coverage/index.json.c.9fe0913c76249e448eec3131d7e8b263.html
@@ -0,0 +1,2377 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/json.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>112</td>
+ <td>153</td>
+ <td class="coverage-low">73.2%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>24</td>
+ <td>24</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>22</td>
+ <td>70</td>
+ <td class="coverage-low">31.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l291">libjson_append (line 291)</a></td><td>called 9180 times, returned 9180 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l65">libjson_clone (line 65)</a></td><td>called 27618 times, returned 27618 times</td><td>78.0%</td></tr>
+ <tr><td><a href="#l26">libjson_free (line 26)</a></td><td>called 110424 times, returned 110424 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l51">libjson_from_string (line 51)</a></td><td>called 46006 times, returned 46006 times</td><td>24.0%</td></tr>
+ <tr><td><a href="#l149">libjson_get (line 149)</a></td><td>called 385956 times, returned 385956 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l176">libjson_get_int (line 176)</a></td><td>called 27540 times, returned 27540 times</td><td>35.0%</td></tr>
+ <tr><td><a href="#l159">libjson_get_string (line 159)</a></td><td>called 165506 times, returned 165506 times</td><td>47.0%</td></tr>
+ <tr><td><a href="#l144">libjson_has (line 144)</a></td><td>called 606620 times, returned 606620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l133">libjson_new_array (line 133)</a></td><td>called 26 times, returned 26 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l122">libjson_new_object (line 122)</a></td><td>called 110344 times, returned 110344 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l101">libjson_recv (line 101)</a></td><td>called 46006 times, returned 46006 times</td><td>85.0%</td></tr>
+ <tr><td><a href="#l83">libjson_send (line 83)</a></td><td>called 46006 times, returned 46006 times</td><td>82.0%</td></tr>
+ <tr><td><a href="#l256">libjson_set (line 256)</a></td><td>called 55158 times, returned 55158 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l276">libjson_set_const_key (line 276)</a></td><td>called 27618 times, returned 27618 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l266">libjson_set_int (line 266)</a></td><td>called 27540 times, returned 27540 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l286">libjson_set_int_const_key (line 286)</a></td><td>called 36772 times, returned 36772 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l235">libjson_set_int_internal (line 235)</a></td><td>called 64312 times, returned 64312 times</td><td>35.0%</td></tr>
+ <tr><td><a href="#l200">libjson_set_internal (line 200)</a></td><td>called 321772 times, returned 321772 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l261">libjson_set_string (line 261)</a></td><td>called 45900 times, returned 45900 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l281">libjson_set_string_const_key (line 281)</a></td><td>called 128784 times, returned 128784 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l214">libjson_set_string_internal (line 214)</a></td><td>called 174684 times, returned 174684 times</td><td>35.0%</td></tr>
+ <tr><td><a href="#l41">libjson_to_string (line 41)</a></td><td>called 46006 times, returned 46006 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l31">libjson_to_string_internal (line 31)</a></td><td>called 55212 times, returned 55212 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l46">libjson_to_string_pretty (line 46)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;buf.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;net.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;json-c/json_object.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;json-c/json_tokener.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;errno.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdint.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#define libjson_errno(fn) \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> do { \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> log_err(&quot;JSON: %s failed\n&quot;, fn); \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> } while (0)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110424</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">libjson_free</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110424</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">json_object_put</span><span class="p">(</span><span class="n">obj</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110424</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55212</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">libjson_to_string_internal</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55212</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_to_json_string_ext</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 55212 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">55212</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_object_to_json_string&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55212</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">libjson_to_string</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_to_string_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">JSON_C_TO_STRING_SPACED</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">libjson_to_string_pretty</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_to_string_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">JSON_C_TO_STRING_SPACED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">JSON_C_TO_STRING_PRETTY</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">libjson_from_string</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">enum</span><span class="w"> </span><span class="n">json_tokener_error</span><span class="w"> </span><span class="n">error</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_tokener_parse_verbose</span><span class="p">(</span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_tokener_parse_verbose&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON: parsing failed: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">json_tokener_error_desc</span><span class="p">(</span><span class="n">error</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_clone</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">**</span><span class="n">_value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">old_value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">old_value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27618 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27618</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">new_value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_deep_copy</span><span class="p">(</span><span class="n">old_value</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">new_value</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27618 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27618</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new_value</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_send</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_to_string</span><span class="p">(</span><span class="n">obj</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">str</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">buf_create_from_string</span><span class="p">(</span><span class="o">&amp;</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">str</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_send_buf</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">buf</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">buf_destroy</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">libjson_recv</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_recv_buf</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">buf</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_from_string</span><span class="p">((</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">buf_get_data</span><span class="p">(</span><span class="n">buf</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 46006 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_buf</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="nl">destroy_buf</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">((</span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">buf_get_data</span><span class="p">(</span><span class="n">buf</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">buf_destroy</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110344</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_new_object</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">**</span><span class="n">_obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110344</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_new_object</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 110344 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">110344</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">obj</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_object_new_object&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110344</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_obj</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">obj</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">110344</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_new_array</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">**</span><span class="n">_arr</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">arr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_new_array</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">arr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_object_new_array&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_arr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">arr</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">606620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_has</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">606620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">json_object_object_get_ex</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">385956</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">**</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 385956 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">385956</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON: key is missing: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">385956</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">json_object_object_get_ex</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">165506</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_get_string</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">_value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">165506</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">165506</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 165506 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">165506</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 165506 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">165506</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">json_object_is_type</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">json_type_string</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON: key is not a string: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">165506</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_get_string</span><span class="p">(</span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">165506</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_get_int</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="o">*</span><span class="n">_value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">json_object_is_type</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">json_type_int</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON: key is not an integer: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">errno</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_get_int64</span><span class="p">(</span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">errno</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON: failed to parse integer from key: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">321772</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">libjson_set_internal</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="n">flags</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">321772</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">321772</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_object_add_ex</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 321772 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">321772</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_object_object_add_ex&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">321772</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174684</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">libjson_set_string_internal</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">_value</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="n">flags</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174684</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_new_string</span><span class="p">(</span><span class="n">_value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 174684 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">174684</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_object_new_string&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174684</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 174684 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">174684</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_value</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174684</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_value</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">json_object_put</span><span class="p">(</span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64312</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">libjson_set_int_internal</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">_value</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="n">flags</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64312</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_new_int64</span><span class="p">(</span><span class="n">_value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 64312 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">64312</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_object_new_int&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64312</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 64312 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">64312</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_value</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64312</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_value</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">json_object_put</span><span class="p">(</span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55158</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_set</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55158</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_set_string</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_string_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l265" href="#l265">265</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l266" href="#l266">266</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">libjson_set_int</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l267" href="#l267">267</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l268" href="#l268">268</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_int_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l269" href="#l269">269</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l270" href="#l270">270</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l271" href="#l271">271</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#ifndef JSON_C_OBJECT_ADD_CONSTANT_KEY</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l272" href="#l272">272</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#define JSON_C_OBJECT_ADD_CONSTANT_KEY JSON_C_OBJECT_KEY_IS_CONSTANT</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l273" href="#l273">273</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#endif</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l274" href="#l274">274</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="n">json_const_key_flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">JSON_C_OBJECT_ADD_CONSTANT_KEY</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l275" href="#l275">275</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l276" href="#l276">276</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libjson_set_const_key</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l277" href="#l277">277</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l278" href="#l278">278</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">json_const_key_flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l279" href="#l279">279</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l280" href="#l280">280</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l281" href="#l281">281</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">128784</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libjson_set_string_const_key</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l282" href="#l282">282</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l283" href="#l283">283</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">128784</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_string_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">json_const_key_flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l284" href="#l284">284</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l285" href="#l285">285</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l286" href="#l286">286</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36772</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libjson_set_int_const_key</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l287" href="#l287">287</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l288" href="#l288">288</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36772</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_int_internal</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">json_const_key_flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l289" href="#l289">289</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l290" href="#l290">290</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l291" href="#l291">291</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">libjson_append</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">arr</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">elem</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l292" href="#l292">292</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l293" href="#l293">293</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json_object_array_add</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span><span class="w"> </span><span class="n">elem</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l294" href="#l294">294</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l295" href="#l295">295</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_errno</span><span class="p">(</span><span class="s">&quot;json_object_array_add&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l296" href="#l296">296</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l297" href="#l297">297</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l298" href="#l298">298</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l299" href="#l299">299</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l300" href="#l300">300</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html b/coverage/index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html
new file mode 100644
index 0000000..3f27373
--- /dev/null
+++ b/coverage/index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html
@@ -0,0 +1,4327 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/json_rpc.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>201</td>
+ <td>306</td>
+ <td class="coverage-low">65.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>34</td>
+ <td>36</td>
+ <td class="coverage-high">94.4%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>58</td>
+ <td>146</td>
+ <td class="coverage-low">39.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l151">jsonrpc_check_error (line 151)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l73">jsonrpc_check_id (line 73)</a></td><td>called 46006 times, returned 46006 times</td><td>50.0%</td></tr>
+ <tr><td><a href="#l63">jsonrpc_check_id_type (line 63)</a></td><td>called 18412 times, returned 18412 times</td><td>43.0%</td></tr>
+ <tr><td><a href="#l97">jsonrpc_check_method (line 97)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l120">jsonrpc_check_params (line 120)</a></td><td>called 36800 times, returned 36800 times</td><td>89.0%</td></tr>
+ <tr><td><a href="#l109">jsonrpc_check_params_type (line 109)</a></td><td>called 27540 times, returned 27540 times</td><td>29.0%</td></tr>
+ <tr><td><a href="#l179">jsonrpc_check_result_or_error (line 179)</a></td><td>called 9206 times, returned 9206 times</td><td>35.0%</td></tr>
+ <tr><td><a href="#l34">jsonrpc_check_version (line 34)</a></td><td>called 46006 times, returned 46006 times</td><td>40.0%</td></tr>
+ <tr><td><a href="#l463">jsonrpc_error_create (line 463)</a></td><td>called 9206 times, returned 9206 times</td><td>65.0%</td></tr>
+ <tr><td><a href="#l58">jsonrpc_generate_request_id (line 58)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l254">jsonrpc_notification_create (line 254)</a></td><td>called 27594 times, returned 27594 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l242">jsonrpc_request_create (line 242)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l195">jsonrpc_request_create_internal (line 195)</a></td><td>called 36800 times, returned 36800 times</td><td>45.0%</td></tr>
+ <tr><td><a href="#l329">jsonrpc_request_create_params (line 329)</a></td><td>called 73440 times, returned 73440 times</td><td>76.0%</td></tr>
+ <tr><td><a href="#l248">jsonrpc_request_destroy (line 248)</a></td><td>called 73600 times, returned 73600 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l265">jsonrpc_request_from_json (line 265)</a></td><td>called 36800 times, returned 36800 times</td><td>48.0%</td></tr>
+ <tr><td><a href="#l318">jsonrpc_request_get_method (line 318)</a></td><td>called 36800 times, returned 36800 times</td><td>83.0%</td></tr>
+ <tr><td><a href="#l375">jsonrpc_request_get_param_int (line 375)</a></td><td>called 27540 times, returned 27540 times</td><td>83.0%</td></tr>
+ <tr><td><a href="#l356">jsonrpc_request_get_param_string (line 356)</a></td><td>called 45900 times, returned 45900 times</td><td>83.0%</td></tr>
+ <tr><td><a href="#l260">jsonrpc_request_is_notification (line 260)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l298">jsonrpc_request_recv (line 298)</a></td><td>called 36800 times, returned 36800 times</td><td>35.0%</td></tr>
+ <tr><td><a href="#l293">jsonrpc_request_send (line 293)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l385">jsonrpc_request_set_param_int (line 385)</a></td><td>called 27540 times, returned 27540 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l366">jsonrpc_request_set_param_string (line 366)</a></td><td>called 45900 times, returned 45900 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l451">jsonrpc_response_create (line 451)</a></td><td>called 18412 times, returned 18412 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l398">jsonrpc_response_create_internal (line 398)</a></td><td>called 27618 times, returned 27618 times</td><td>50.0%</td></tr>
+ <tr><td><a href="#l457">jsonrpc_response_destroy (line 457)</a></td><td>called 36824 times, returned 36824 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l497">jsonrpc_response_from_json (line 497)</a></td><td>called 9206 times, returned 9206 times</td><td>45.0%</td></tr>
+ <tr><td><a href="#l492">jsonrpc_response_is_error (line 492)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l527">jsonrpc_response_recv (line 527)</a></td><td>called 9206 times, returned 9206 times</td><td>35.0%</td></tr>
+ <tr><td><a href="#l522">jsonrpc_response_send (line 522)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l393">jsonrpc_response_to_string (line 393)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l92">jsonrpc_set_id (line 92)</a></td><td>called 9206 times, returned 9206 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l104">jsonrpc_set_method (line 104)</a></td><td>called 36800 times, returned 36800 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l135">jsonrpc_set_params (line 135)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l51">jsonrpc_set_version (line 51)</a></td><td>called 64418 times, returned 64418 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json_rpc.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;json-c/json_object.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdatomic.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdint.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;jsonrpc&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;id&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;method&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;params&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_value_version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;2.0&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_version</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_version</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get_string</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">strcmp</span><span class="p">(</span><span class="n">version</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_value_version</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: invalid &#39;%s&#39; value: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64418</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_set_version</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64418</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_string_const_key</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_version</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_value_version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="kt">_Atomic</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_id_counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_generate_request_id</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_id_counter</span><span class="o">++</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_id_type</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">id</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/4</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 18412 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="takenBranch">&check; Branch 5 taken 18412 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18412</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">json_object_is_type</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">json_type_string</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n">json_object_is_type</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">json_type_int</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: key &#39;%s&#39; must be either an integer or a string</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">jsonrpc_key_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_id</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">required</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_id</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 27594 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 18412 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27594 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27594</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">required</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27594</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: key is missing: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18412 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18412</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_check_id_type</span><span class="p">(</span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_set_id</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_int_const_key</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_id</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_method</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_method</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_get_string</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">method</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_set_method</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">method</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_string_const_key</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_method</span><span class="p">,</span><span class="w"> </span><span class="n">method</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_params_type</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 27540 times.</div>
+ <div class="notTakenBranch">&cross; Branch 3 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">json_object_is_type</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">json_type_object</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;&amp;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="o">!</span><span class="n">json_object_is_type</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">json_type_array</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: key &#39;%s&#39; must be either an object or an array</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">jsonrpc_key_params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_params</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_params</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 9260 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">))</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9260</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_check_params_type</span><span class="p">(</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_set_params</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_params</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_params_type</span><span class="p">(</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_const_key</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;result&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;error&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;code&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">jsonrpc_key_message</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;message&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_error</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_error</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get_int</span><span class="p">(</span><span class="n">error</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_code</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">code</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: key is missing or not an integer: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_code</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">message</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get_string</span><span class="p">(</span><span class="n">error</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_message</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">message</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: key is missing or not a string: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_message</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_check_result_or_error</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">obj</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key_result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">key_error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_error</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9206 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key_result</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key_error</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: either &#39;%s&#39; or &#39;%s&#39; must be present</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">key_result</span><span class="p">,</span><span class="w"> </span><span class="n">key_error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span><span class="w"> </span><span class="n">key_result</span><span class="p">))</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_check_error</span><span class="p">(</span><span class="n">obj</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_request_create_internal</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">_request</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">id</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">method</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">request</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_new_object</span><span class="p">(</span><span class="o">&amp;</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_set_version</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27594 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_set_id</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_set_method</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">method</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">params</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_set_params</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_impl</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="nl">exit</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_request_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">_request</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">method</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_request_create_internal</span><span class="p">(</span><span class="n">_request</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">method</span><span class="p">,</span><span class="w"> </span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">73600</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">jsonrpc_request_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">73600</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">73600</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">73600</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27594</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_notification_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">_request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">method</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27594</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_request_create_internal</span><span class="p">(</span><span class="n">_request</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">method</span><span class="p">,</span><span class="w"> </span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_request_is_notification</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">!</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l265" href="#l265">265</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_request_from_json</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">_request</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">impl</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l266" href="#l266">266</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l267" href="#l267">267</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l268" href="#l268">268</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l269" href="#l269">269</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_version</span><span class="p">(</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l270" href="#l270">270</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l271" href="#l271">271</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l272" href="#l272">272</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_id</span><span class="p">(</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l273" href="#l273">273</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l274" href="#l274">274</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l275" href="#l275">275</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_method</span><span class="p">(</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l276" href="#l276">276</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l277" href="#l277">277</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l278" href="#l278">278</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_params</span><span class="p">(</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l279" href="#l279">279</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l280" href="#l280">280</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l281" href="#l281">281</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l282" href="#l282">282</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l283" href="#l283">283</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">request</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l284" href="#l284">284</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l285" href="#l285">285</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l286" href="#l286">286</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l287" href="#l287">287</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l288" href="#l288">288</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l289" href="#l289">289</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l290" href="#l290">290</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l291" href="#l291">291</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l292" href="#l292">292</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l293" href="#l293">293</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_request_send</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l294" href="#l294">294</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l295" href="#l295">295</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_send</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l296" href="#l296">296</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l297" href="#l297">297</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l298" href="#l298">298</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">jsonrpc_request_recv</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l299" href="#l299">299</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l300" href="#l300">300</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">impl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_recv</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l301" href="#l301">301</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">impl</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l302" href="#l302">302</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: failed to receive request</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l303" href="#l303">303</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l304" href="#l304">304</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l305" href="#l305">305</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l306" href="#l306">306</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_from_json</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l307" href="#l307">307</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l308" href="#l308">308</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l309" href="#l309">309</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l310" href="#l310">310</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l311" href="#l311">311</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l312" href="#l312">312</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_impl</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l313" href="#l313">313</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l314" href="#l314">314</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l315" href="#l315">315</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l316" href="#l316">316</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l317" href="#l317">317</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l318" href="#l318">318</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">jsonrpc_request_get_method</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l319" href="#l319">319</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l320" href="#l320">320</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l321" href="#l321">321</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get_string</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_method</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">method</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l322" href="#l322">322</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36800 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36800</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l323" href="#l323">323</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* Should never happen. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l324" href="#l324">324</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l325" href="#l325">325</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l326" href="#l326">326</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36800</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">method</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l327" href="#l327">327</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l328" href="#l328">328</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l329" href="#l329">329</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">73440</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">jsonrpc_request_create_params</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l330" href="#l330">330</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l331" href="#l331">331</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">73440</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l332" href="#l332">332</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">73440</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_key_params</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l333" href="#l333">333</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l334" href="#l334">334</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 45900 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">73440</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">libjson_has</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l335" href="#l335">335</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l336" href="#l336">336</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l337" href="#l337">337</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_new_object</span><span class="p">(</span><span class="o">&amp;</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l338" href="#l338">338</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l339" href="#l339">339</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l340" href="#l340">340</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l341" href="#l341">341</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l342" href="#l342">342</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l343" href="#l343">343</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l344" href="#l344">344</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l345" href="#l345">345</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l346" href="#l346">346</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">params</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l347" href="#l347">347</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l348" href="#l348">348</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l349" href="#l349">349</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l350" href="#l350">350</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l351" href="#l351">351</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 45900 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">45900</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l352" href="#l352">352</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l353" href="#l353">353</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">params</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l354" href="#l354">354</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l355" href="#l355">355</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l356" href="#l356">356</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_string</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l357" href="#l357">357</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l358" href="#l358">358</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l359" href="#l359">359</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l360" href="#l360">360</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_params</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l361" href="#l361">361</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 45900 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">45900</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l362" href="#l362">362</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l363" href="#l363">363</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_get_string</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l364" href="#l364">364</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l365" href="#l365">365</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l366" href="#l366">366</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_string</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l367" href="#l367">367</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l368" href="#l368">368</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l369" href="#l369">369</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_create_params</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l370" href="#l370">370</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 45900 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">45900</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">params</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l371" href="#l371">371</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l372" href="#l372">372</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_string</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l373" href="#l373">373</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l374" href="#l374">374</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l375" href="#l375">375</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_int</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l376" href="#l376">376</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l377" href="#l377">377</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l378" href="#l378">378</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l379" href="#l379">379</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_get</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_params</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">params</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l380" href="#l380">380</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l381" href="#l381">381</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l382" href="#l382">382</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_get_int</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l383" href="#l383">383</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l384" href="#l384">384</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l385" href="#l385">385</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_int</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l386" href="#l386">386</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l387" href="#l387">387</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_create_params</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l388" href="#l388">388</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">params</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l389" href="#l389">389</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l390" href="#l390">390</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_set_int</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l391" href="#l391">391</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l392" href="#l392">392</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l393" href="#l393">393</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">jsonrpc_response_to_string</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l394" href="#l394">394</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l395" href="#l395">395</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_to_string_pretty</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l396" href="#l396">396</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l397" href="#l397">397</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l398" href="#l398">398</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_response_create_internal</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">_response</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l399" href="#l399">399</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l400" href="#l400">400</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">error</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l401" href="#l401">401</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l402" href="#l402">402</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l403" href="#l403">403</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l404" href="#l404">404</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l405" href="#l405">405</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27618 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27618</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l406" href="#l406">406</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l407" href="#l407">407</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l408" href="#l408">408</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l409" href="#l409">409</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l410" href="#l410">410</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l411" href="#l411">411</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_new_object</span><span class="p">(</span><span class="o">&amp;</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l412" href="#l412">412</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27618 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27618</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l413" href="#l413">413</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l414" href="#l414">414</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l415" href="#l415">415</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_set_version</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l416" href="#l416">416</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27618 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27618</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l417" href="#l417">417</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l418" href="#l418">418</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l419" href="#l419">419</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l420" href="#l420">420</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_clone</span><span class="p">(</span><span class="n">request</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_id</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l421" href="#l421">421</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27618 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27618</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l422" href="#l422">422</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l423" href="#l423">423</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l424" href="#l424">424</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_id</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l425" href="#l425">425</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27618 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27618</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l426" href="#l426">426</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l427" href="#l427">427</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l428" href="#l428">428</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l429" href="#l429">429</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l430" href="#l430">430</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9206 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18412 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l431" href="#l431">431</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_const_key</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_error</span><span class="p">,</span><span class="w"> </span><span class="n">error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l432" href="#l432">432</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l433" href="#l433">433</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l434" href="#l434">434</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l435" href="#l435">435</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_const_key</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_result</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l436" href="#l436">436</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18412 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18412</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l437" href="#l437">437</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l438" href="#l438">438</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l439" href="#l439">439</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l440" href="#l440">440</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">response</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l441" href="#l441">441</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l442" href="#l442">442</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l443" href="#l443">443</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_impl</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l444" href="#l444">444</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l445" href="#l445">445</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l446" href="#l446">446</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">response</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l447" href="#l447">447</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="nl">exit</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l448" href="#l448">448</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27618</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l449" href="#l449">449</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l450" href="#l450">450</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l451" href="#l451">451</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_response_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l452" href="#l452">452</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l453" href="#l453">453</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l454" href="#l454">454</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18412</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_response_create_internal</span><span class="p">(</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l455" href="#l455">455</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l456" href="#l456">456</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l457" href="#l457">457</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36824</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="n">jsonrpc_response_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l458" href="#l458">458</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l459" href="#l459">459</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36824</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l460" href="#l460">460</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36824</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">response</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l461" href="#l461">461</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36824</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l462" href="#l462">462</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l463" href="#l463">463</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_error_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l464" href="#l464">464</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">code</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">message</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l465" href="#l465">465</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l466" href="#l466">466</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l467" href="#l467">467</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l468" href="#l468">468</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l469" href="#l469">469</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_new_object</span><span class="p">(</span><span class="o">&amp;</span><span class="n">error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l470" href="#l470">470</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l471" href="#l471">471</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l472" href="#l472">472</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l473" href="#l473">473</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_int_const_key</span><span class="p">(</span><span class="n">error</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_code</span><span class="p">,</span><span class="w"> </span><span class="n">code</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l474" href="#l474">474</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l475" href="#l475">475</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l476" href="#l476">476</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_string_const_key</span><span class="p">(</span><span class="n">error</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_message</span><span class="p">,</span><span class="w"> </span><span class="n">message</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l477" href="#l477">477</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l478" href="#l478">478</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l479" href="#l479">479</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l480" href="#l480">480</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_create_internal</span><span class="p">(</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l481" href="#l481">481</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l482" href="#l482">482</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l483" href="#l483">483</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l484" href="#l484">484</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l485" href="#l485">485</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l486" href="#l486">486</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l487" href="#l487">487</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l488" href="#l488">488</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l489" href="#l489">489</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l490" href="#l490">490</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l491" href="#l491">491</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l492" href="#l492">492</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_response_is_error</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l493" href="#l493">493</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l494" href="#l494">494</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_has</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_key_error</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l495" href="#l495">495</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l496" href="#l496">496</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l497" href="#l497">497</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_response_from_json</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">_response</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">impl</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l498" href="#l498">498</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l499" href="#l499">499</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l500" href="#l500">500</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l501" href="#l501">501</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_version</span><span class="p">(</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l502" href="#l502">502</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l503" href="#l503">503</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l504" href="#l504">504</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_id</span><span class="p">(</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l505" href="#l505">505</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l506" href="#l506">506</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l507" href="#l507">507</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_check_result_or_error</span><span class="p">(</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l508" href="#l508">508</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l509" href="#l509">509</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l510" href="#l510">510</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l511" href="#l511">511</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l512" href="#l512">512</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l513" href="#l513">513</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l514" href="#l514">514</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l515" href="#l515">515</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l516" href="#l516">516</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l517" href="#l517">517</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l518" href="#l518">518</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">response</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l519" href="#l519">519</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l520" href="#l520">520</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l521" href="#l521">521</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l522" href="#l522">522</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_response_send</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l523" href="#l523">523</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l524" href="#l524">524</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">libjson_send</span><span class="p">(</span><span class="n">response</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l525" href="#l525">525</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l526" href="#l526">526</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l527" href="#l527">527</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">jsonrpc_response_recv</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l528" href="#l528">528</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l529" href="#l529">529</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">impl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_recv</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l530" href="#l530">530</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">impl</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l531" href="#l531">531</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;JSON-RPC: failed to receive response</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l532" href="#l532">532</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l533" href="#l533">533</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l534" href="#l534">534</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l535" href="#l535">535</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_from_json</span><span class="p">(</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l536" href="#l536">536</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9206 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9206</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l537" href="#l537">537</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l538" href="#l538">538</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l539" href="#l539">539</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l540" href="#l540">540</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l541" href="#l541">541</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_impl</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l542" href="#l542">542</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l543" href="#l543">543</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l544" href="#l544">544</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l545" href="#l545">545</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l546" href="#l546">546</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.log.c.47179e5db7ed3f2db741c99372ba24f3.html b/coverage/index.log.c.47179e5db7ed3f2db741c99372ba24f3.html
new file mode 100644
index 0000000..493aec2
--- /dev/null
+++ b/coverage/index.log.c.47179e5db7ed3f2db741c99372ba24f3.html
@@ -0,0 +1,509 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/log.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>22</td>
+ <td>24</td>
+ <td class="coverage-high">91.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>4</td>
+ <td>4</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>4</td>
+ <td>6</td>
+ <td class="coverage-low">66.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l51">log_entry_end (line 51)</a></td><td>called 181825 times, returned 181825 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l41">log_entry_start (line 41)</a></td><td>called 740909 times, returned 740909 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l36">log_prefix_thread_id (line 36)</a></td><td>called 181825 times, returned 181825 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l17">log_prefix_timestamp (line 17)</a></td><td>called 181825 times, returned 181825 times</td><td>70.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/time.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;time.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="kt">int</span><span class="w"> </span><span class="n">g_log_lvl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LOG_LVL_INFO</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kr">inline</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">log_prefix_timestamp</span><span class="p">(</span><span class="kt">FILE</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">timeval</span><span class="w"> </span><span class="n">tv</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">tm</span><span class="w"> </span><span class="n">tm</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">buf</span><span class="p">[</span><span class="mi">64</span><span class="p">];</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 181825 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">181825</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">gettimeofday</span><span class="p">(</span><span class="o">&amp;</span><span class="n">tv</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 181825 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">181825</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">gmtime_r</span><span class="p">(</span><span class="o">&amp;</span><span class="n">tv</span><span class="p">.</span><span class="n">tv_sec</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">tm</span><span class="p">))</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">buf</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">&#39;\0&#39;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">strftime</span><span class="p">(</span><span class="n">buf</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">used</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">buf</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">used</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;%F %T&quot;</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">tm</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="n">msec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">long</span><span class="w"> </span><span class="kt">long</span><span class="p">)</span><span class="n">tv</span><span class="p">.</span><span class="n">tv_usec</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">1000</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">snprintf</span><span class="p">(</span><span class="n">buf</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">used</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">buf</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">used</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;.%03lld | &quot;</span><span class="p">,</span><span class="w"> </span><span class="n">msec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">dest</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;%s&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">buf</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kr">inline</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">log_prefix_thread_id</span><span class="p">(</span><span class="kt">FILE</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">dest</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;%d | &quot;</span><span class="p">,</span><span class="w"> </span><span class="n">gettid</span><span class="p">());</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">740909</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">log_entry_start</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">lvl</span><span class="p">,</span><span class="w"> </span><span class="kt">FILE</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 559084 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 181825 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">740909</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">lvl</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">g_log_lvl</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">559084</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">flockfile</span><span class="p">(</span><span class="n">dest</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">log_prefix_timestamp</span><span class="p">(</span><span class="n">dest</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">log_prefix_thread_id</span><span class="p">(</span><span class="n">dest</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">log_entry_end</span><span class="p">(</span><span class="kt">FILE</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">funlockfile</span><span class="p">(</span><span class="n">dest</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">181825</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.net.c.37012fce13860cefc5963f57e0f36732.html b/coverage/index.net.c.37012fce13860cefc5963f57e0f36732.html
new file mode 100644
index 0000000..d6e1cb0
--- /dev/null
+++ b/coverage/index.net.c.37012fce13860cefc5963f57e0f36732.html
@@ -0,0 +1,2152 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/net.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>87</td>
+ <td>139</td>
+ <td class="coverage-low">62.6%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>9</td>
+ <td>9</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>30</td>
+ <td>92</td>
+ <td class="coverage-low">32.6%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l95">net_accept (line 95)</a></td><td>called 27620 times, returned 27620 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l23">net_bind (line 23)</a></td><td>called 29 times, returned 29 times</td><td>26.0%</td></tr>
+ <tr><td><a href="#l154">net_close (line 154)</a></td><td>called 64503 times, returned 64503 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l109">net_connect (line 109)</a></td><td>called 27620 times, returned 27620 times</td><td>29.0%</td></tr>
+ <tr><td><a href="#l187">net_recv (line 187)</a></td><td>called 92012 times, returned 92012 times</td><td>35.0%</td></tr>
+ <tr><td><a href="#l228">net_recv_buf (line 228)</a></td><td>called 46006 times, returned 46006 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l172">net_send (line 172)</a></td><td>called 92012 times, returned 92012 times</td><td>88.0%</td></tr>
+ <tr><td><a href="#l212">net_send_buf (line 212)</a></td><td>called 46006 times, returned 46006 times</td><td>83.0%</td></tr>
+ <tr><td><a href="#l159">net_send_part (line 159)</a></td><td>called 92012 times, returned 92012 times</td><td>33.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;net.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;buf.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;netdb.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdint.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/socket.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/types.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#define gai_log_errno(ec) log_err(&quot;getaddrinfo: %s\n&quot;, gai_strerror(ec))</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">net_bind</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">port</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SOCK_CLOEXEC</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">addrinfo</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">addrinfo</span><span class="w"> </span><span class="n">hints</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">socket_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">memset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">hints</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">hints</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">hints</span><span class="p">.</span><span class="n">ai_family</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">AF_INET6</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">hints</span><span class="p">.</span><span class="n">ai_socktype</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SOCK_STREAM</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">hints</span><span class="p">.</span><span class="n">ai_flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">AI_PASSIVE</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">getaddrinfo</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">port</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">hints</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">gai_log_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"> </span><span class="n">it</span><span class="p">;</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_next</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">socket_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">socket</span><span class="p">(</span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_family</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_socktype</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">flags</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_protocol</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">socket_fd</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;socket&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">continue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">yes</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_family</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">AF_INET6</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">setsockopt</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">,</span><span class="w"> </span><span class="n">IPPROTO_IPV6</span><span class="p">,</span><span class="w"> </span><span class="n">IPV6_V6ONLY</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">no</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">no</span><span class="p">))</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;setsockopt&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_socket</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">setsockopt</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">,</span><span class="w"> </span><span class="n">SOL_SOCKET</span><span class="p">,</span><span class="w"> </span><span class="n">SO_REUSEADDR</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">yes</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">yes</span><span class="p">))</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;setsockopt&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_socket</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">bind</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_addr</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_addrlen</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;bind&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_socket</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="nl">close_socket</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">freeaddrinfo</span><span class="p">(</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">it</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Couldn&#39;t bind to port %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">listen</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">,</span><span class="w"> </span><span class="mi">4096</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;listen&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">fail</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">socket_fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">fail</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">net_accept</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SOCK_CLOEXEC</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">accept4</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;accept4&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">net_connect</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">host</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">port</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SOCK_CLOEXEC</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">addrinfo</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">addrinfo</span><span class="w"> </span><span class="n">hints</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">socket_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">memset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">hints</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">hints</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">hints</span><span class="p">.</span><span class="n">ai_family</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">AF_UNSPEC</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">hints</span><span class="p">.</span><span class="n">ai_socktype</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SOCK_STREAM</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">getaddrinfo</span><span class="p">(</span><span class="n">host</span><span class="p">,</span><span class="w"> </span><span class="n">port</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">hints</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">gai_log_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"> </span><span class="n">it</span><span class="p">;</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_next</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">socket_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">socket</span><span class="p">(</span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_family</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_socktype</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">flags</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_protocol</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">socket_fd</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;socket&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">continue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">connect</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_addr</span><span class="p">,</span><span class="w"> </span><span class="n">it</span><span class="o">-&gt;</span><span class="n">ai_addrlen</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;connect&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_socket</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="nl">close_socket</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">socket_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">freeaddrinfo</span><span class="p">(</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">it</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Couldn&#39;t connect to host %s, port %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">host</span><span class="p">,</span><span class="w"> </span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">socket_fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64503</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">net_close</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64503</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">file_close</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64503</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="nf">net_send_part</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">size</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">MSG_NOSIGNAL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">send</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 92012 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">92012</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;send&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">net_send</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">size</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">sent_total</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 92012 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 92012 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">184024</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">sent_total</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">sent_now</span><span class="w"> </span><span class="o">=</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">net_send_part</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">buf</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">sent_total</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">sent_total</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 92012 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">92012</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">sent_now</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sent_total</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">sent_now</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">net_recv</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">size</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">read_total</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 106813 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 92012 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">198825</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">((</span><span class="kt">size_t</span><span class="p">)</span><span class="n">read_total</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">106813</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">read_now</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">read</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">buf</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">read_total</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">read_total</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 106813 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">106813</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">read_now</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 106813 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">106813</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">read_now</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;read&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">106813</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">read_total</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">read_now</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 92012 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">92012</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="kt">size_t</span><span class="p">)</span><span class="n">read_total</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Received only %zd bytes out of %zu</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">read_total</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">92012</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">net_send_buf</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">htonl</span><span class="p">(</span><span class="n">buf_get_size</span><span class="p">(</span><span class="n">buf</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_send</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">size</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_send</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">buf_get_data</span><span class="p">(</span><span class="n">buf</span><span class="p">),</span><span class="w"> </span><span class="n">buf_get_size</span><span class="p">(</span><span class="n">buf</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">net_recv_buf</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">buf</span><span class="w"> </span><span class="o">**</span><span class="n">buf</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_recv</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">size</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Couldn&#39;t read buffer size</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">fail</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ntohl</span><span class="p">(</span><span class="n">size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="n">size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">data</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">fail</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_recv</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Couldn&#39;t read buffer</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_data</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">buf_create</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 46006 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">46006</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_data</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">46006</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_data</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">data</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">fail</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html b/coverage/index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html
new file mode 100644
index 0000000..5716e10
--- /dev/null
+++ b/coverage/index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html
@@ -0,0 +1,1360 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/process.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>41</td>
+ <td>84</td>
+ <td class="coverage-low">48.8%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>5</td>
+ <td>8</td>
+ <td class="coverage-low">62.5%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>12</td>
+ <td>52</td>
+ <td class="coverage-low">23.1%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l17">exec_child (line 17)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l61">process_execute (line 61)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l96">process_execute_and_capture (line 96)</a></td><td>called 9180 times, returned 9180 times</td><td>43.0%</td></tr>
+ <tr><td><a href="#l141">process_output_create (line 141)</a></td><td>called 18360 times, returned 18360 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l157">process_output_destroy (line 157)</a></td><td>called 18360 times, returned 18360 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l163">process_output_dump (line 163)</a></td><td>called 9180 times, returned 9180 times</td><td>82.0%</td></tr>
+ <tr><td><a href="#l75">redirect_and_exec_child (line 75)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l33">wait_for_child (line 33)</a></td><td>called 9180 times, returned 9180 times</td><td>36.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;process.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;fcntl.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/wait.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">exec_child</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">args</span><span class="p">[],</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">envp</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">default_envp</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="nb">NULL</span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">envp</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">envp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_envp</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">execvpe</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">envp</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;execvpe&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">wait_for_child</span><span class="p">(</span><span class="kt">pid_t</span><span class="w"> </span><span class="n">pid</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">ec</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">status</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">pid_t</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">waitpid</span><span class="p">(</span><span class="n">pid</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">status</span><span class="p">,</span><span class="w"> </span><span class="n">__WNOTHREAD</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;waitpid&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* The child process reports the lowest 8 bits of its exit code, which</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * are treated as an unsigned integer on Linux.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * If it was killed by a signal, indicate that by negating the signal</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * number. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9144 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">WIFEXITED</span><span class="p">(</span><span class="n">status</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9144</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">ec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">WEXITSTATUS</span><span class="p">(</span><span class="n">status</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 36 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">WIFSIGNALED</span><span class="p">(</span><span class="n">status</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">ec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="n">WTERMSIG</span><span class="p">(</span><span class="n">status</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;This shouldn&#39;t happen: %d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">status</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="o">*</span><span class="n">ec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">process_execute</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">args</span><span class="p">[],</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">envp</span><span class="p">[],</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">ec</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">pid_t</span><span class="w"> </span><span class="n">child_pid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fork</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">child_pid</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;fork&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">child_pid</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">child_pid</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">exit</span><span class="p">(</span><span class="n">exec_child</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="n">envp</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">wait_for_child</span><span class="p">(</span><span class="n">child_pid</span><span class="p">,</span><span class="w"> </span><span class="n">ec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">redirect_and_exec_child</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">args</span><span class="p">[],</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">envp</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">file_close</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dup2</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">STDOUT_FILENO</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;dup2&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dup2</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">STDERR_FILENO</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;dup2&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">exec_child</span><span class="p">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="n">envp</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">process_execute_and_capture</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">args</span><span class="p">[],</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">envp</span><span class="p">[],</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">O_CLOEXEC</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pipe2</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;pipe2&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">pid_t</span><span class="w"> </span><span class="n">child_pid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fork</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">child_pid</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;fork&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_pipe</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">child_pid</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">exit</span><span class="p">(</span><span class="n">redirect_and_exec_child</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">,</span><span class="w"> </span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="n">envp</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">file_close</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">file_read</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="o">&amp;</span><span class="n">result</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">result</span><span class="o">-&gt;</span><span class="n">data_size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_pipe</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">wait_for_child</span><span class="p">(</span><span class="n">child_pid</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">result</span><span class="o">-&gt;</span><span class="n">ec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_data</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_pipe</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_data</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">result</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">close_pipe</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">file_close</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* No errno checking here, we might&#39;ve already closed the write end. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">close</span><span class="p">(</span><span class="n">pipe_fds</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">process_output_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">**</span><span class="n">_output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18360 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18360</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">output</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">ec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data_size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">process_output_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">process_output_dump</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Process exit code: %d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">ec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Process output: %zu bytes</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data_size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html b/coverage/index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html
new file mode 100644
index 0000000..8da718b
--- /dev/null
+++ b/coverage/index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html
@@ -0,0 +1,1860 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/protocol.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>90</td>
+ <td>131</td>
+ <td class="coverage-low">68.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>10</td>
+ <td>11</td>
+ <td class="coverage-high">90.9%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>24</td>
+ <td>48</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l122">request_create_finished_run (line 122)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ <tr><td><a href="#l195">request_create_get_runs (line 195)</a></td><td>called 26 times, returned 26 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l63">request_create_new_worker (line 63)</a></td><td>called 9234 times, returned 9234 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l25">request_create_queue_run (line 25)</a></td><td>called 9180 times, returned 9180 times</td><td>69.0%</td></tr>
+ <tr><td><a href="#l73">request_create_start_run (line 73)</a></td><td>called 9180 times, returned 9180 times</td><td>68.0%</td></tr>
+ <tr><td><a href="#l155">request_parse_finished_run (line 155)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ <tr><td><a href="#l200">request_parse_get_runs (line 200)</a></td><td>called 26 times, returned 26 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l68">request_parse_new_worker (line 68)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l47">request_parse_queue_run (line 47)</a></td><td>called 9180 times, returned 9180 times</td><td>78.0%</td></tr>
+ <tr><td><a href="#l98">request_parse_start_run (line 98)</a></td><td>called 9180 times, returned 9180 times</td><td>75.0%</td></tr>
+ <tr><td><a href="#l205">response_create_get_runs (line 205)</a></td><td>called 26 times, returned 26 times</td><td>64.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;protocol.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;base64.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json_rpc.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;process.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;run_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stddef.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdint.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">run_key_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;id&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">run_key_url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;url&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">run_key_rev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;rev&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_create_queue_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_create</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_generate_request_id</span><span class="p">(),</span><span class="w"> </span><span class="n">CMD_QUEUE_RUN</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_string</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_url</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_string</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_rev</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_repo_rev</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_request</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_parse_queue_run</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">**</span><span class="n">run</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_string</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_url</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_string</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_rev</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">run_queued</span><span class="p">(</span><span class="n">run</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_create_new_worker</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_notification_create</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">CMD_NEW_WORKER</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_parse_new_worker</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_create_start_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_notification_create</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">CMD_START_RUN</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_int</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_id</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_id</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_string</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_url</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_string</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_rev</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_repo_rev</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_request</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_parse_start_run</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">**</span><span class="n">run</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_int</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_id</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_string</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_url</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_string</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">run_key_rev</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">run_created</span><span class="p">(</span><span class="n">run</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">finished_key_run_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;run_id&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">finished_key_ec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;exit_code&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">finished_key_data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;output&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_create_finished_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">run_id</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_notification_create</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">CMD_FINISHED_RUN</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_int</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">finished_key_run_id</span><span class="p">,</span><span class="w"> </span><span class="n">run_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_int</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">finished_key_ec</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">ec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">b64data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">base64_encode</span><span class="p">(</span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data_size</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">b64data</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_set_param_string</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">finished_key_data</span><span class="p">,</span><span class="w"> </span><span class="n">b64data</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">b64data</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_request</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="o">*</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_parse_finished_run</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">_run_id</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">**</span><span class="n">_output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">process_output_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">run_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_int</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">finished_key_run_id</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">run_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int64_t</span><span class="w"> </span><span class="n">ec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_int</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">finished_key_ec</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">ec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">ec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">ec</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">b64data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_get_param_string</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">finished_key_data</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">b64data</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">base64_decode</span><span class="p">(</span><span class="n">b64data</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data_size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_run_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">run_id</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_output</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">process_output_destroy</span><span class="p">(</span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_create_get_runs</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">**</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">jsonrpc_request_create</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">jsonrpc_generate_request_id</span><span class="p">(),</span><span class="w"> </span><span class="n">CMD_GET_RUNS</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">request_parse_get_runs</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">response_create_get_runs</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">runs</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">runs_json</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">run_queue_to_json</span><span class="p">(</span><span class="n">runs</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">runs_json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_create</span><span class="p">(</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="n">runs_json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_json</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_json</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">runs_json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html b/coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html
new file mode 100644
index 0000000..fa71be5
--- /dev/null
+++ b/coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html
@@ -0,0 +1,1648 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/run_queue.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>81</td>
+ <td>111</td>
+ <td class="coverage-low">73.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>15</td>
+ <td>16</td>
+ <td class="coverage-high">93.8%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>17</td>
+ <td>36</td>
+ <td class="coverage-low">47.2%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l80">run_created (line 80)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l68">run_destroy (line 68)</a></td><td>called 36720 times, returned 36720 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l115">run_get_id (line 115)</a></td><td>called 45900 times, returned 45900 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l125">run_get_repo_rev (line 125)</a></td><td>called 36720 times, returned 36720 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l120">run_get_repo_url (line 120)</a></td><td>called 64260 times, returned 64260 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l28">run_new (line 28)</a></td><td>called 36720 times, returned 36720 times</td><td>21.0%</td></tr>
+ <tr><td><a href="#l189">run_queue_add_first (line 189)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l194">run_queue_add_last (line 194)</a></td><td>called 18360 times, returned 18360 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l135">run_queue_create (line 135)</a></td><td>called 55 times, returned 55 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l140">run_queue_destroy (line 140)</a></td><td>called 55 times, returned 55 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l184">run_queue_is_empty (line 184)</a></td><td>called 27431 times, returned 27431 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l199">run_queue_remove_first (line 199)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l151">run_queue_to_json (line 151)</a></td><td>called 26 times, returned 26 times</td><td>63.0%</td></tr>
+ <tr><td><a href="#l75">run_queued (line 75)</a></td><td>called 18360 times, returned 18360 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l130">run_set_id (line 130)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l85">run_to_json (line 85)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;run_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;json-c/json_object.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/queue.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_url</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_rev</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">status</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">exit_code</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">SIMPLEQ_ENTRY</span><span class="p">(</span><span class="n">run</span><span class="p">)</span><span class="w"> </span><span class="n">entries</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">run_new</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">**</span><span class="n">_entry</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">_repo_url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">_repo_rev</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">enum</span><span class="w"> </span><span class="n">run_status</span><span class="w"> </span><span class="n">status</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">exit_code</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36720 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36720</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">entry</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">fail</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="p">(</span><span class="n">_repo_url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36720 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36720</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">repo_url</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strdup&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_entry</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_rev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="p">(</span><span class="n">_repo_rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36720 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36720</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">repo_rev</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strdup&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_repo_url</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">id</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">repo_url</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_rev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">repo_rev</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">status</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">status</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">exit_code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">exit_code</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_repo_url</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">repo_url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_entry</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">fail</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">run_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">run_queued</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">**</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_rev</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">run_new</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="n">repo_rev</span><span class="p">,</span><span class="w"> </span><span class="n">RUN_STATUS_CREATED</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">run_created</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">**</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_rev</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">run_new</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="n">repo_rev</span><span class="p">,</span><span class="w"> </span><span class="n">RUN_STATUS_CREATED</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">run_to_json</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">**</span><span class="n">_json</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">json</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_new_object</span><span class="p">(</span><span class="o">&amp;</span><span class="n">json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_int_const_key</span><span class="p">(</span><span class="n">json</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;id&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_int_const_key</span><span class="p">(</span><span class="n">json</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;exit_code&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">exit_code</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_string_const_key</span><span class="p">(</span><span class="n">json</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;repo_url&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_set_string_const_key</span><span class="p">(</span><span class="n">json</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;repo_rev&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_json</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">run_get_id</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45900</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">id</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64260</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">run_get_repo_url</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">64260</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_url</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">run_get_repo_rev</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36720</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">repo_rev</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">run_set_id</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">id</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">run_queue_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INIT</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">run_queue_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 55 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9235</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">entry1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_NEXT</span><span class="p">(</span><span class="n">entry1</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_destroy</span><span class="p">(</span><span class="n">entry1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry2</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INIT</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">run_queue_to_json</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">**</span><span class="n">_json</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">json</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_new_array</span><span class="p">(</span><span class="o">&amp;</span><span class="n">json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9206</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_FOREACH</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">json_object</span><span class="w"> </span><span class="o">*</span><span class="n">entry_json</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">run_to_json</span><span class="p">(</span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">entry_json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libjson_append</span><span class="p">(</span><span class="n">json</span><span class="p">,</span><span class="w"> </span><span class="n">entry_json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">entry_json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_json</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">json</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">libjson_free</span><span class="p">(</span><span class="n">json</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27431</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">run_queue_is_empty</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27431</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">SIMPLEQ_EMPTY</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">run_queue_add_first</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INSERT_HEAD</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">run_queue_add_last</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INSERT_TAIL</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run_queue_remove_first</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 80 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9100 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_REMOVE_HEAD</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">entry</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html b/coverage/index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html
new file mode 100644
index 0000000..6865d98
--- /dev/null
+++ b/coverage/index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html
@@ -0,0 +1,3998 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/server.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>195</td>
+ <td>272</td>
+ <td class="coverage-low">71.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>21</td>
+ <td>21</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>61</td>
+ <td>146</td>
+ <td class="coverage-low">41.8%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l164">server_assign_run (line 164)</a></td><td>called 9180 times, returned 9180 times</td><td>70.0%</td></tr>
+ <tr><td><a href="#l358">server_create (line 358)</a></td><td>called 29 times, returned 29 times</td><td>29.0%</td></tr>
+ <tr><td><a href="#l463">server_destroy (line 463)</a></td><td>called 29 times, returned 29 times</td><td>42.0%</td></tr>
+ <tr><td><a href="#l124">server_enqueue_run (line 124)</a></td><td>called 9180 times, returned 9180 times</td><td>86.0%</td></tr>
+ <tr><td><a href="#l103">server_enqueue_worker (line 103)</a></td><td>called 9234 times, returned 9234 times</td><td>86.0%</td></tr>
+ <tr><td><a href="#l292">server_handle_cmd_finished_run (line 292)</a></td><td>called 9180 times, returned 9180 times</td><td>55.0%</td></tr>
+ <tr><td><a href="#l320">server_handle_cmd_get_runs (line 320)</a></td><td>called 26 times, returned 26 times</td><td>52.0%</td></tr>
+ <tr><td><a href="#l226">server_handle_cmd_new_worker (line 226)</a></td><td>called 9234 times, returned 9234 times</td><td>60.0%</td></tr>
+ <tr><td><a href="#l259">server_handle_cmd_queue_run (line 259)</a></td><td>called 9180 times, returned 9180 times</td><td>56.0%</td></tr>
+ <tr><td><a href="#l119">server_has_runs (line 119)</a></td><td>called 27431 times, returned 27431 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l98">server_has_workers (line 98)</a></td><td>called 27215 times, returned 27215 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l480">server_listen_thread (line 480)</a></td><td>called 29 times, returned 29 times</td><td>85.0%</td></tr>
+ <tr><td><a href="#l51">server_lock (line 51)</a></td><td>called 18472 times, returned 18472 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l495">server_main (line 495)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l199">server_main_thread (line 199)</a></td><td>called 29 times, returned 29 times</td><td>86.0%</td></tr>
+ <tr><td><a href="#l76">server_notify (line 76)</a></td><td>called 18443 times, returned 18443 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l146">server_ready_for_action (line 146)</a></td><td>called 27460 times, returned 27460 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l81">server_set_stopping (line 81)</a></td><td>called 29 times, returned 29 times</td><td>86.0%</td></tr>
+ <tr><td><a href="#l61">server_unlock (line 61)</a></td><td>called 18472 times, returned 18472 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l66">server_wait (line 66)</a></td><td>called 18251 times, returned 18251 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l151">server_wait_for_action (line 151)</a></td><td>called 9209 times, returned 9209 times</td><td>89.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;server.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;command.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;event_loop.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;json_rpc.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;net.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;process.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;protocol.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;run_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;signal.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;storage.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;storage_sqlite.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;tcp_server.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;worker_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;poll.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;pthread.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">pthread_mutex_t</span><span class="w"> </span><span class="n">server_mtx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">pthread_cond_t</span><span class="w"> </span><span class="n">server_cv</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">stopping</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="n">cmd_dispatcher</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">event_loop</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">signalfd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker_queue</span><span class="w"> </span><span class="n">worker_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="n">run_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="n">storage</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">pthread_t</span><span class="w"> </span><span class="n">main_thread</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="n">tcp_server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18472</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_lock</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18472</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_mutex_lock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_mtx</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18472 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18472</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_mutex_lock&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18472</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18472</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">server_unlock</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 18472 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18472</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_mutex_unlock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_mtx</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_mutex_unlock&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18472</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18251</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_wait</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18251</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_cond_wait</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_cv</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_mtx</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18251 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18251</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_cond_wait&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18251</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18443</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">server_notify</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 18443 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18443</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_cond_signal</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_cv</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_cond_signal&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18443</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_set_stopping</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">revents</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_lock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_notify</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_unlock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27215</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_has_workers</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27215</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">!</span><span class="n">worker_queue_is_empty</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">worker_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_enqueue_worker</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_lock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker_queue_add_last</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">worker_queue</span><span class="p">,</span><span class="w"> </span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Added a new worker %d to the queue</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">worker_get_fd</span><span class="p">(</span><span class="n">worker</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_notify</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_unlock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27431</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_has_runs</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27431</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">!</span><span class="n">run_queue_is_empty</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">run_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_enqueue_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_run_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">run</span><span class="p">),</span><span class="w"> </span><span class="n">run_get_repo_rev</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_set_id</span><span class="p">(</span><span class="n">run</span><span class="p">,</span><span class="w"> </span><span class="n">ret</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_lock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_queue_add_last</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">run_queue</span><span class="p">,</span><span class="w"> </span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Added a new run %d for repository %s to the queue</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_id</span><span class="p">(</span><span class="n">run</span><span class="p">),</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_notify</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_unlock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27460</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_ready_for_action</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">6/6</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27431 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ <div class="takenBranch">&check; Branch 3 taken 27215 times.</div>
+ <div class="takenBranch">&check; Branch 4 taken 216 times.</div>
+ <div class="takenBranch">&check; Branch 6 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 7 taken 18035 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">27460</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="p">(</span><span class="n">server_has_runs</span><span class="p">(</span><span class="n">server</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">server_has_workers</span><span class="p">(</span><span class="n">server</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9209</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_wait_for_action</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9209</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 18251 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9209 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">27460</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">server_ready_for_action</span><span class="p">(</span><span class="n">server</span><span class="p">))</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18251</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_wait</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18251 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18251</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9209</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">server_assign_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">run_queue_remove_first</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">run_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Removed run %d for repository %s from the queue</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_id</span><span class="p">(</span><span class="n">run</span><span class="p">),</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">run</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker_queue_remove_first</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">worker_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Removed worker %d from the queue</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">worker_get_fd</span><span class="p">(</span><span class="n">worker</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">start_request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_create_start_run</span><span class="p">(</span><span class="o">&amp;</span><span class="n">start_request</span><span class="p">,</span><span class="w"> </span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_send</span><span class="p">(</span><span class="n">start_request</span><span class="p">,</span><span class="w"> </span><span class="n">worker_get_fd</span><span class="p">(</span><span class="n">worker</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="n">start_request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">exit</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Failed to assign run for repository %s to worker %d, requeueing</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">run</span><span class="p">),</span><span class="w"> </span><span class="n">worker_get_fd</span><span class="p">(</span><span class="n">worker</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">run_queue_add_first</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">run_queue</span><span class="p">,</span><span class="w"> </span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Assigned run %d for repository %s to worker %d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_id</span><span class="p">(</span><span class="n">run</span><span class="p">),</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">run</span><span class="p">),</span><span class="w"> </span><span class="n">worker_get_fd</span><span class="p">(</span><span class="n">worker</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_destroy</span><span class="p">(</span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker_destroy</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="nf">server_main_thread</span><span class="p">(</span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_lock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">exit</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9209</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_wait_for_action</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9209 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9209</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">unlock</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 29 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9209</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">unlock</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_assign_run</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="nl">unlock</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_unlock</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="nl">exit</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_handle_cmd_new_worker</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_ctx</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">file_dup</span><span class="p">(</span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">worker</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_enqueue_worker</span><span class="p">(</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_worker</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_worker</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">worker_destroy</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">close</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_handle_cmd_queue_run</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_ctx</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l265" href="#l265">265</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l266" href="#l266">266</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l267" href="#l267">267</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l268" href="#l268">268</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_parse_queue_run</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l269" href="#l269">269</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l270" href="#l270">270</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l271" href="#l271">271</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l272" href="#l272">272</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_response_create</span><span class="p">(</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l273" href="#l273">273</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l274" href="#l274">274</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_run</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l275" href="#l275">275</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l276" href="#l276">276</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_enqueue_run</span><span class="p">(</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l277" href="#l277">277</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l278" href="#l278">278</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_response</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l279" href="#l279">279</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l280" href="#l280">280</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l281" href="#l281">281</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l282" href="#l282">282</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_response</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l283" href="#l283">283</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">jsonrpc_response_destroy</span><span class="p">(</span><span class="o">*</span><span class="n">response</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l284" href="#l284">284</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="o">*</span><span class="n">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l285" href="#l285">285</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l286" href="#l286">286</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_run</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l287" href="#l287">287</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">run_destroy</span><span class="p">(</span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l288" href="#l288">288</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l289" href="#l289">289</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l290" href="#l290">290</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l291" href="#l291">291</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l292" href="#l292">292</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_handle_cmd_finished_run</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l293" href="#l293">293</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_ctx</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l294" href="#l294">294</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l295" href="#l295">295</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l296" href="#l296">296</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l297" href="#l297">297</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l298" href="#l298">298</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l299" href="#l299">299</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">run_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l300" href="#l300">300</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l301" href="#l301">301</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l302" href="#l302">302</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_parse_finished_run</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">run_id</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l303" href="#l303">303</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l304" href="#l304">304</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l305" href="#l305">305</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l306" href="#l306">306</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_run_finished</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">run_id</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l307" href="#l307">307</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l308" href="#l308">308</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Failed to mark run %d as finished</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">run_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l309" href="#l309">309</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l310" href="#l310">310</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l311" href="#l311">311</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l312" href="#l312">312</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Marked run %d as finished</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">run_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l313" href="#l313">313</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l314" href="#l314">314</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">free_output</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l315" href="#l315">315</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">process_output_destroy</span><span class="p">(</span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l316" href="#l316">316</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l317" href="#l317">317</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l318" href="#l318">318</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l319" href="#l319">319</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l320" href="#l320">320</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_handle_cmd_get_runs</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l321" href="#l321">321</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_ctx</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l322" href="#l322">322</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l323" href="#l323">323</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l324" href="#l324">324</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l325" href="#l325">325</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l326" href="#l326">326</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l327" href="#l327">327</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_parse_get_runs</span><span class="p">(</span><span class="n">request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l328" href="#l328">328</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l329" href="#l329">329</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l330" href="#l330">330</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l331" href="#l331">331</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="n">runs</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l332" href="#l332">332</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l333" href="#l333">333</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_get_runs</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">runs</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l334" href="#l334">334</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l335" href="#l335">335</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Failed to fetch runs</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l336" href="#l336">336</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l337" href="#l337">337</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l338" href="#l338">338</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l339" href="#l339">339</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">response_create_get_runs</span><span class="p">(</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">runs</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l340" href="#l340">340</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 26 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l341" href="#l341">341</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_runs</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l342" href="#l342">342</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l343" href="#l343">343</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="nl">destroy_runs</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l344" href="#l344">344</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_queue_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">runs</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l345" href="#l345">345</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l346" href="#l346">346</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l347" href="#l347">347</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l348" href="#l348">348</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l349" href="#l349">349</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="n">commands</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l350" href="#l350">350</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="n">CMD_NEW_WORKER</span><span class="p">,</span><span class="w"> </span><span class="n">server_handle_cmd_new_worker</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l351" href="#l351">351</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="n">CMD_QUEUE_RUN</span><span class="p">,</span><span class="w"> </span><span class="n">server_handle_cmd_queue_run</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l352" href="#l352">352</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="n">CMD_FINISHED_RUN</span><span class="p">,</span><span class="w"> </span><span class="n">server_handle_cmd_finished_run</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l353" href="#l353">353</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="n">CMD_GET_RUNS</span><span class="p">,</span><span class="w"> </span><span class="n">server_handle_cmd_get_runs</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l354" href="#l354">354</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l355" href="#l355">355</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l356" href="#l356">356</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">numof_commands</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">commands</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">commands</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l357" href="#l357">357</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l358" href="#l358">358</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">server_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">**</span><span class="n">_server</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l359" href="#l359">359</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l360" href="#l360">360</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="n">storage_settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l361" href="#l361">361</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l362" href="#l362">362</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l363" href="#l363">363</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l364" href="#l364">364</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">server</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l365" href="#l365">365</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l366" href="#l366">366</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l367" href="#l367">367</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l368" href="#l368">368</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l369" href="#l369">369</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_mutex_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_mtx</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l370" href="#l370">370</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l371" href="#l371">371</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_mutex_init&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l372" href="#l372">372</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l373" href="#l373">373</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l374" href="#l374">374</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l375" href="#l375">375</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_cond_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_cv</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l376" href="#l376">376</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l377" href="#l377">377</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_cond_init&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l378" href="#l378">378</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_mtx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l379" href="#l379">379</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l380" href="#l380">380</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l381" href="#l381">381</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l382" href="#l382">382</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l383" href="#l383">383</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">cmd_dispatcher_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">,</span><span class="w"> </span><span class="n">commands</span><span class="p">,</span><span class="w"> </span><span class="n">numof_commands</span><span class="p">,</span><span class="w"> </span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l384" href="#l384">384</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l385" href="#l385">385</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_cv</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l386" href="#l386">386</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l387" href="#l387">387</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l388" href="#l388">388</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l389" href="#l389">389</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_cmd_dispatcher</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l390" href="#l390">390</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l391" href="#l391">391</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">signalfd_create_sigterms</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l392" href="#l392">392</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l393" href="#l393">393</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_event_loop</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l394" href="#l394">394</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l395" href="#l395">395</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l396" href="#l396">396</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_add</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">,</span><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="p">,</span><span class="w"> </span><span class="n">POLLIN</span><span class="p">,</span><span class="w"> </span><span class="n">server_set_stopping</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l397" href="#l397">397</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l398" href="#l398">398</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l399" href="#l399">399</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_signalfd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l400" href="#l400">400</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l401" href="#l401">401</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker_queue_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">worker_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l402" href="#l402">402</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l403" href="#l403">403</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_settings_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage_settings</span><span class="p">,</span><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">sqlite_path</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l404" href="#l404">404</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l405" href="#l405">405</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_worker_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l406" href="#l406">406</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l407" href="#l407">407</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">storage_settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l408" href="#l408">408</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">storage_settings_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage_settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l409" href="#l409">409</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l410" href="#l410">410</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_worker_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l411" href="#l411">411</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l412" href="#l412">412</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_get_run_queue</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">run_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l413" href="#l413">413</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l414" href="#l414">414</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_storage</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l415" href="#l415">415</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l416" href="#l416">416</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tcp_server_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">tcp_server</span><span class="p">,</span><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">,</span><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l417" href="#l417">417</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">cmd_dispatcher_handle_conn</span><span class="p">,</span><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l418" href="#l418">418</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l419" href="#l419">419</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_run_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l420" href="#l420">420</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l421" href="#l421">421</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">main_thread</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">server_main_thread</span><span class="p">,</span><span class="w"> </span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l422" href="#l422">422</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l423" href="#l423">423</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_create&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l424" href="#l424">424</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_tcp_server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l425" href="#l425">425</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l426" href="#l426">426</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l427" href="#l427">427</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l428" href="#l428">428</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l429" href="#l429">429</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l430" href="#l430">430</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_tcp_server</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l431" href="#l431">431</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">tcp_server_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">tcp_server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l432" href="#l432">432</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l433" href="#l433">433</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_run_queue</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l434" href="#l434">434</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">run_queue_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">run_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l435" href="#l435">435</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l436" href="#l436">436</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_storage</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l437" href="#l437">437</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">storage_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">storage</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l438" href="#l438">438</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l439" href="#l439">439</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_worker_queue</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l440" href="#l440">440</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">worker_queue_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">worker_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l441" href="#l441">441</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l442" href="#l442">442</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">close_signalfd</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l443" href="#l443">443</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">signalfd_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l444" href="#l444">444</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l445" href="#l445">445</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_event_loop</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l446" href="#l446">446</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">event_loop_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l447" href="#l447">447</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l448" href="#l448">448</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_cmd_dispatcher</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l449" href="#l449">449</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">cmd_dispatcher_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l450" href="#l450">450</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l451" href="#l451">451</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_cv</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l452" href="#l452">452</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_cond_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_cv</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_cond_destroy&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l453" href="#l453">453</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l454" href="#l454">454</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_mtx</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l455" href="#l455">455</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_mutex_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_mtx</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_mutex_destroy&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l456" href="#l456">456</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l457" href="#l457">457</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l458" href="#l458">458</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l459" href="#l459">459</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l460" href="#l460">460</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l461" href="#l461">461</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l462" href="#l462">462</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l463" href="#l463">463</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">server_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l464" href="#l464">464</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l465" href="#l465">465</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Shutting down</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l466" href="#l466">466</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l467" href="#l467">467</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_join</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">main_thread</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_join&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l468" href="#l468">468</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">tcp_server_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">tcp_server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l469" href="#l469">469</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">storage_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">storage</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l470" href="#l470">470</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_queue_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">run_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l471" href="#l471">471</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker_queue_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">worker_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l472" href="#l472">472</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">signalfd_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l473" href="#l473">473</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_loop_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l474" href="#l474">474</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">cmd_dispatcher_destroy</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l475" href="#l475">475</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_cond_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_cv</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_cond_destroy&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l476" href="#l476">476</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_mutex_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">server_mtx</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_mutex_destroy&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l477" href="#l477">477</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l478" href="#l478">478</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l479" href="#l479">479</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l480" href="#l480">480</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">server_listen_thread</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l481" href="#l481">481</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l482" href="#l482">482</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l483" href="#l483">483</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l484" href="#l484">484</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 52998 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">53027</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l485" href="#l485">485</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 52998 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">52998</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Waiting for new connections</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l486" href="#l486">486</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l487" href="#l487">487</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">52998</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_run</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l488" href="#l488">488</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 52998 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">52998</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l489" href="#l489">489</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l490" href="#l490">490</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l491" href="#l491">491</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l492" href="#l492">492</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l493" href="#l493">493</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l494" href="#l494">494</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l495" href="#l495">495</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">server_main</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l496" href="#l496">496</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l497" href="#l497">497</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">server_listen_thread</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l498" href="#l498">498</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l499" href="#l499">499</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html b/coverage/index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html
new file mode 100644
index 0000000..cf40e43
--- /dev/null
+++ b/coverage/index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html
@@ -0,0 +1,814 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/server_main.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>34</td>
+ <td>43</td>
+ <td class="coverage-medium">79.1%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>4</td>
+ <td>4</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>10</td>
+ <td>14</td>
+ <td class="coverage-low">71.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l16">default_settings (line 16)</a></td><td>called 35 times, returned 35 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l25">get_usage_string (line 25)</a></td><td>called 4 times, returned 4 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l73">main (line 73)</a></td><td>called 35 times, returned 29 times</td><td>79.0%</td></tr>
+ <tr><td><a href="#l30">parse_settings (line 30)</a></td><td>called 35 times, returned 29 times</td><td>76.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;cmd_line.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;server.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;getopt.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">default_settings</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">settings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">.</span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_port</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">.</span><span class="n">sqlite_path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_sqlite_path</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">4</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">get_usage_string</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">4</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="s">&quot;[-h|--help] [-V|--version] [-v|--verbose] [-p|--port PORT] [-s|--sqlite PATH]&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">parse_settings</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">opt</span><span class="p">,</span><span class="w"> </span><span class="n">longind</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_settings</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* clang-format off */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">option</span><span class="w"> </span><span class="n">long_options</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;help&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;h&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;version&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;V&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;verbose&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;v&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;port&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">required_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;p&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;sqlite&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">required_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;s&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* clang-format on */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 64 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">93</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">((</span><span class="n">opt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">getopt_long</span><span class="p">(</span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;hVvp:s:&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">long_options</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">longind</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">-1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">5/6</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 2 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 2 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ <div class="takenBranch">&check; Branch 3 taken 29 times.</div>
+ <div class="takenBranch">&check; Branch 4 taken 29 times.</div>
+ <div class="takenBranch">&check; Branch 5 taken 2 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">64</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">opt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;h&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;V&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_version</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;v&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">g_log_lvl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LOG_LVL_DEBUG</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;p&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">optarg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;s&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">sqlite_path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">optarg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">default</span><span class="o">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">main</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">35</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">parse_settings</span><span class="p">(</span><span class="o">&amp;</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server_main</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="nl">destroy_server</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server_destroy</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.signal.c.71d63611c8a63e0778dd598afad76dfd.html b/coverage/index.signal.c.71d63611c8a63e0778dd598afad76dfd.html
new file mode 100644
index 0000000..e4d0de3
--- /dev/null
+++ b/coverage/index.signal.c.71d63611c8a63e0778dd598afad76dfd.html
@@ -0,0 +1,765 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/signal.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>31</td>
+ <td>38</td>
+ <td class="coverage-medium">81.6%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>8</td>
+ <td>8</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>5</td>
+ <td>10</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l43">signal_block_all (line 43)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l50">signal_block_sigterms (line 50)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l38">signal_set_mask (line 38)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l25">signal_set_mask_internal (line 25)</a></td><td>called 82943 times, returned 82943 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l57">signalfd_create (line 57)</a></td><td>called 83 times, returned 83 times</td><td>64.0%</td></tr>
+ <tr><td><a href="#l79">signalfd_create_sigterms (line 79)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l86">signalfd_destroy (line 86)</a></td><td>called 83 times, returned 83 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l18">sigterms_mask (line 18)</a></td><td>called 27703 times, returned 27703 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;signal.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;signal.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stddef.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/signalfd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">sigterm_signals</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="n">SIGINT</span><span class="p">,</span><span class="w"> </span><span class="n">SIGTERM</span><span class="p">,</span><span class="w"> </span><span class="n">SIGQUIT</span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27703</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">sigterms_mask</span><span class="p">(</span><span class="kt">sigset_t</span><span class="w"> </span><span class="o">*</span><span class="n">set</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27703</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sigemptyset</span><span class="p">(</span><span class="n">set</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 83109 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27703 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">110812</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">sigterm_signals</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">sigterm_signals</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83109</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sigaddset</span><span class="p">(</span><span class="n">set</span><span class="p">,</span><span class="w"> </span><span class="n">sigterm_signals</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27703</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">82943</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">signal_set_mask_internal</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="o">*</span><span class="n">new</span><span class="p">,</span><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="o">*</span><span class="n">old</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">82943</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">82943</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_sigmask</span><span class="p">(</span><span class="n">SIG_SETMASK</span><span class="p">,</span><span class="w"> </span><span class="n">new</span><span class="p">,</span><span class="w"> </span><span class="n">old</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 82943 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">82943</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_sigmask&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">82943</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">signal_set_mask</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="o">*</span><span class="n">new</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">signal_set_mask_internal</span><span class="p">(</span><span class="n">new</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">signal_block_all</span><span class="p">(</span><span class="kt">sigset_t</span><span class="w"> </span><span class="o">*</span><span class="n">old</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="n">new</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sigfillset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">new</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">signal_set_mask_internal</span><span class="p">(</span><span class="o">&amp;</span><span class="n">new</span><span class="p">,</span><span class="w"> </span><span class="n">old</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">signal_block_sigterms</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="n">set</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sigterms_mask</span><span class="p">(</span><span class="o">&amp;</span><span class="n">set</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">signal_set_mask_internal</span><span class="p">(</span><span class="o">&amp;</span><span class="n">set</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">signalfd_create</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="o">*</span><span class="n">set</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SFD_CLOEXEC</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="n">old</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">signal_set_mask_internal</span><span class="p">(</span><span class="n">set</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">old</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">83</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">signalfd</span><span class="p">(</span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">set</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 83 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">83</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">restore</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">restore</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">signal_set_mask_internal</span><span class="p">(</span><span class="o">&amp;</span><span class="n">old</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">signalfd_create_sigterms</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="n">set</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sigterms_mask</span><span class="p">(</span><span class="o">&amp;</span><span class="n">set</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">signalfd_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">set</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">signalfd_destroy</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">file_close</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html b/coverage/index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html
new file mode 100644
index 0000000..61ac84f
--- /dev/null
+++ b/coverage/index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html
@@ -0,0 +1,2462 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/sqlite.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>101</td>
+ <td>162</td>
+ <td class="coverage-low">62.3%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>18</td>
+ <td>21</td>
+ <td class="coverage-medium">85.7%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>21</td>
+ <td>95</td>
+ <td class="coverage-low">22.1%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l235">sqlite_bind_blob (line 235)</a></td><td>called 9180 times, returned 9180 times</td><td>31.0%</td></tr>
+ <tr><td><a href="#l209">sqlite_bind_int (line 209)</a></td><td>called 45929 times, returned 45929 times</td><td>31.0%</td></tr>
+ <tr><td><a href="#l222">sqlite_bind_text (line 222)</a></td><td>called 27540 times, returned 27540 times</td><td>31.0%</td></tr>
+ <tr><td><a href="#l75">sqlite_close (line 75)</a></td><td>called 29 times, returned 29 times</td><td>25.0%</td></tr>
+ <tr><td><a href="#l179">sqlite_column_blob (line 179)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l144">sqlite_column_int (line 144)</a></td><td>called 45929 times, returned 45929 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l149">sqlite_column_text (line 149)</a></td><td>called 18360 times, returned 18360 times</td><td>22.0%</td></tr>
+ <tr><td><a href="#l45">sqlite_destroy (line 45)</a></td><td>called 29 times, returned 29 times</td><td>25.0%</td></tr>
+ <tr><td><a href="#l80">sqlite_exec (line 80)</a></td><td>called 58 times, returned 58 times</td><td>31.0%</td></tr>
+ <tr><td><a href="#l248">sqlite_exec_as_transaction (line 248)</a></td><td>called 29 times, returned 29 times</td><td>38.0%</td></tr>
+ <tr><td><a href="#l93">sqlite_exec_log_result (line 93)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l121">sqlite_finalize (line 121)</a></td><td>called 203 times, returned 203 times</td><td>25.0%</td></tr>
+ <tr><td><a href="#l273">sqlite_get_user_version (line 273)</a></td><td>called 29 times, returned 29 times</td><td>40.0%</td></tr>
+ <tr><td><a href="#l32">sqlite_init (line 32)</a></td><td>called 29 times, returned 29 times</td><td>31.0%</td></tr>
+ <tr><td><a href="#l50">sqlite_open (line 50)</a></td><td>called 29 times, returned 29 times</td><td>31.0%</td></tr>
+ <tr><td><a href="#l69">sqlite_open_ro (line 69)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l63">sqlite_open_rw (line 63)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l102">sqlite_prepare (line 102)</a></td><td>called 203 times, returned 203 times</td><td>31.0%</td></tr>
+ <tr><td><a href="#l115">sqlite_reset (line 115)</a></td><td>called 36775 times, returned 36775 times</td><td>22.0%</td></tr>
+ <tr><td><a href="#l308">sqlite_set_foreign_keys (line 308)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l126">sqlite_step (line 126)</a></td><td>called 45984 times, returned 45984 times</td><td>36.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;sqlite.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sqlite3.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stddef.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#define sqlite_errno(var, fn) \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> do { \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> log_err(&quot;%s: %s\n&quot;, fn, sqlite3_errstr(var)); \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> var = -var; \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> } while (0)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#define sqlite_errno_if(expr, fn) \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> do { \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> int CONCAT(ret, __LINE__) = expr; \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> if (CONCAT(ret, __LINE__)) \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> sqlite_errno(CONCAT(ret, __LINE__), fn); \</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp"> } while (0)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_init</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_initialize</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_initialize&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">sqlite_destroy</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">sqlite_errno_if</span><span class="p">(</span><span class="n">sqlite3_shutdown</span><span class="p">(),</span><span class="w"> </span><span class="s">&quot;sqlite3_shutdown&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_open</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="n">sqlite3</span><span class="w"> </span><span class="o">**</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_open_v2</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_open_v2&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_open_rw</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="n">sqlite3</span><span class="w"> </span><span class="o">**</span><span class="n">db</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SQLITE_OPEN_CREATE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">SQLITE_OPEN_READWRITE</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">sqlite_open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_open_ro</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="n">sqlite3</span><span class="w"> </span><span class="o">**</span><span class="n">db</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SQLITE_OPEN_READONLY</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">sqlite_open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">flags</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">sqlite_close</span><span class="p">(</span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">sqlite_errno_if</span><span class="p">(</span><span class="n">sqlite3_close</span><span class="p">(</span><span class="n">db</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;sqlite3_close&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">58</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_exec</span><span class="p">(</span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">sqlite3_callback</span><span class="w"> </span><span class="n">callback</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">58</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">58</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_exec</span><span class="p">(</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">callback</span><span class="p">,</span><span class="w"> </span><span class="n">arg</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 58 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">58</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_exec&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">58</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_exec_log_result</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">numof_columns</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">values</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">column_names</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Row:</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">numof_columns</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\t</span><span class="s">%s: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">column_names</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="w"> </span><span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">203</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_prepare</span><span class="p">(</span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">**</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">203</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">203</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_prepare_v2</span><span class="p">(</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 203 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">203</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_prepare_v2&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">203</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36775</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">sqlite_reset</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 36775 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36775</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">sqlite_errno_if</span><span class="p">(</span><span class="n">sqlite3_reset</span><span class="p">(</span><span class="n">stmt</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;sqlite3_reset&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 36775 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36775</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">sqlite_errno_if</span><span class="p">(</span><span class="n">sqlite3_clear_bindings</span><span class="p">(</span><span class="n">stmt</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;sqlite3_clear_bindings&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36775</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">203</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">sqlite_finalize</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 203 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">203</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">sqlite_errno_if</span><span class="p">(</span><span class="n">sqlite3_finalize</span><span class="p">(</span><span class="n">stmt</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;sqlite3_finalize&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">203</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45984</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_step</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45984</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45984</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_step</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/3</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27569 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18415 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">45984</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27569</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="no">SQLITE_ROW</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27569</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18415</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="no">SQLITE_DONE</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18415</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">default</span><span class="o">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_step&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45929</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_column_int</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45929</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">sqlite3_column_int</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_column_text</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">_result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_column_text</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18360 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18360</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_errcode</span><span class="p">(</span><span class="n">sqlite3_db_handle</span><span class="p">(</span><span class="n">stmt</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_column_text&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_column_bytes</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">nb</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="p">)</span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="n">nb</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 18360 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18360</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">memcpy</span><span class="p">(</span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">nb</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_column_blob</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">_result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_column_blob</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_errcode</span><span class="p">(</span><span class="n">sqlite3_db_handle</span><span class="p">(</span><span class="n">stmt</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_column_text&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_column_bytes</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">nb</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="p">)</span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="n">nb</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">memcpy</span><span class="p">(</span><span class="n">result</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">nb</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45929</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_bind_int</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45929</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45929</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_bind_int</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 45929 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">45929</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_bind_int&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">45929</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_bind_text</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_bind_text</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">SQLITE_STATIC</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27540 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27540</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_bind_text&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27540</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_bind_blob</span><span class="p">(</span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">nb</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite3_bind_blob64</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">nb</span><span class="p">,</span><span class="w"> </span><span class="n">SQLITE_STATIC</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;sqlite3_bind_blob64&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_exec_as_transaction</span><span class="p">(</span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;BEGIN; %s COMMIT;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">snprintf</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">fmt</span><span class="p">,</span><span class="w"> </span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">nb</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="p">)</span><span class="n">ret</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">full_stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="n">nb</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">full_stmt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">snprintf</span><span class="p">(</span><span class="n">full_stmt</span><span class="p">,</span><span class="w"> </span><span class="n">nb</span><span class="p">,</span><span class="w"> </span><span class="n">fmt</span><span class="p">,</span><span class="w"> </span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_exec</span><span class="p">(</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l265" href="#l265">265</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l266" href="#l266">266</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l267" href="#l267">267</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l268" href="#l268">268</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">full_stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l269" href="#l269">269</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l270" href="#l270">270</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l271" href="#l271">271</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l272" href="#l272">272</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l273" href="#l273">273</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_get_user_version</span><span class="p">(</span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l274" href="#l274">274</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l275" href="#l275">275</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">sql</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;PRAGMA user_version;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l276" href="#l276">276</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l277" href="#l277">277</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l278" href="#l278">278</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l279" href="#l279">279</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l280" href="#l280">280</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_prepare</span><span class="p">(</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">sql</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l281" href="#l281">281</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l282" href="#l282">282</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l283" href="#l283">283</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_step</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l284" href="#l284">284</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l285" href="#l285">285</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l286" href="#l286">286</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l287" href="#l287">287</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l288" href="#l288">288</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Failed to read database version</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l289" href="#l289">289</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l290" href="#l290">290</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l291" href="#l291">291</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l292" href="#l292">292</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_int</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l293" href="#l293">293</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">result</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l294" href="#l294">294</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Invalid database version: %d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l295" href="#l295">295</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l296" href="#l296">296</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l297" href="#l297">297</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l298" href="#l298">298</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l299" href="#l299">299</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l300" href="#l300">300</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l301" href="#l301">301</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l302" href="#l302">302</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="nl">finalize</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l303" href="#l303">303</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_finalize</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l304" href="#l304">304</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l305" href="#l305">305</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l306" href="#l306">306</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l307" href="#l307">307</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l308" href="#l308">308</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">sqlite_set_foreign_keys</span><span class="p">(</span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l309" href="#l309">309</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l310" href="#l310">310</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">sql</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;PRAGMA foreign_keys = ON;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l311" href="#l311">311</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">sqlite_exec</span><span class="p">(</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">sql</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l312" href="#l312">312</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l313" href="#l313">313</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.storage.c.96d197609feea4b630e7b775fb18af81.html b/coverage/index.storage.c.96d197609feea4b630e7b775fb18af81.html
new file mode 100644
index 0000000..c1807ba
--- /dev/null
+++ b/coverage/index.storage.c.96d197609feea4b630e7b775fb18af81.html
@@ -0,0 +1,1088 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/storage.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>37</td>
+ <td>49</td>
+ <td class="coverage-medium">75.5%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>9</td>
+ <td>9</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>9</td>
+ <td>20</td>
+ <td class="coverage-low">45.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l57">get_api (line 57)</a></td><td>called 18502 times, returned 18502 times</td><td>36.0%</td></tr>
+ <tr><td><a href="#l52">numof_apis (line 52)</a></td><td>called 18502 times, returned 18502 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l79">storage_create (line 79)</a></td><td>called 29 times, returned 29 times</td><td>75.0%</td></tr>
+ <tr><td><a href="#l92">storage_destroy (line 92)</a></td><td>called 29 times, returned 29 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l124">storage_get_run_queue (line 124)</a></td><td>called 29 times, returned 29 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l116">storage_get_runs (line 116)</a></td><td>called 26 times, returned 26 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l100">storage_run_create (line 100)</a></td><td>called 9180 times, returned 9180 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l108">storage_run_finished (line 108)</a></td><td>called 9180 times, returned 9180 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l71">storage_settings_destroy (line 71)</a></td><td>called 29 times, returned 29 times</td><td>80.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;storage.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;process.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;run_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;storage_sqlite.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stddef.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">typedef</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">storage_settings_destroy_t</span><span class="p">)(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="o">*</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">typedef</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">storage_create_t</span><span class="p">)(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="o">*</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">typedef</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">storage_destroy_t</span><span class="p">)(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">typedef</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">storage_run_create_t</span><span class="p">)(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">typedef</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">storage_run_finished_t</span><span class="p">)(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">repo_id</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">typedef</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">storage_get_runs_t</span><span class="p">)(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">typedef</span><span class="w"> </span><span class="n">storage_get_runs_t</span><span class="w"> </span><span class="n">storage_get_run_queue_t</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_settings_destroy_t</span><span class="w"> </span><span class="n">destroy_settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_create_t</span><span class="w"> </span><span class="n">create</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_destroy_t</span><span class="w"> </span><span class="n">destroy</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_run_create_t</span><span class="w"> </span><span class="n">run_create</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_run_finished_t</span><span class="w"> </span><span class="n">run_finished</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_get_runs_t</span><span class="w"> </span><span class="n">get_runs</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_get_run_queue_t</span><span class="w"> </span><span class="n">get_run_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="n">apis</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_sqlite_settings_destroy</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_sqlite_create</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_sqlite_destroy</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_sqlite_run_create</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_sqlite_run_finished</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_sqlite_get_runs</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">storage_sqlite_get_run_queue</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18502</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="nf">numof_apis</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18502</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">apis</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">apis</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18502</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">get_api</span><span class="p">(</span><span class="k">enum</span><span class="w"> </span><span class="n">storage_type</span><span class="w"> </span><span class="n">type</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">type</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">invalid_type</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 18502 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">18502</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="kt">size_t</span><span class="p">)</span><span class="n">type</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">numof_apis</span><span class="p">())</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">invalid_type</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">18502</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">&amp;</span><span class="n">apis</span><span class="p">[</span><span class="n">type</span><span class="p">];</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">invalid_type</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Unsupported storage type: %d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="n">storage_settings_destroy</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_api</span><span class="p">(</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">api</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">api</span><span class="o">-&gt;</span><span class="n">destroy_settings</span><span class="p">(</span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">storage_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_api</span><span class="p">(</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">api</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">api</span><span class="o">-&gt;</span><span class="n">create</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="n">storage_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_api</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">api</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">api</span><span class="o">-&gt;</span><span class="n">destroy</span><span class="p">(</span><span class="n">storage</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">storage_run_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_api</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">api</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">api</span><span class="o">-&gt;</span><span class="n">run_create</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">storage_run_finished</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">run_id</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_api</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">api</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">api</span><span class="o">-&gt;</span><span class="n">run_finished</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">run_id</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">storage_get_runs</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_api</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">api</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">api</span><span class="o">-&gt;</span><span class="n">get_runs</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">storage_get_run_queue</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_api</span><span class="w"> </span><span class="o">*</span><span class="n">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get_api</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">api</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">api</span><span class="o">-&gt;</span><span class="n">get_run_queue</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html b/coverage/index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html
new file mode 100644
index 0000000..d7d310f
--- /dev/null
+++ b/coverage/index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html
@@ -0,0 +1,4403 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/storage_sqlite.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>245</td>
+ <td>338</td>
+ <td class="coverage-low">72.5%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>23</td>
+ <td>23</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>66</td>
+ <td>156</td>
+ <td class="coverage-low">42.3%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l84">prepared_stmt_destroy (line 84)</a></td><td>called 174 times, returned 174 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l62">prepared_stmt_init (line 62)</a></td><td>called 174 times, returned 174 times</td><td>23.0%</td></tr>
+ <tr><td><a href="#l90">prepared_stmt_lock (line 90)</a></td><td>called 36775 times, returned 36775 times</td><td>33.0%</td></tr>
+ <tr><td><a href="#l100">prepared_stmt_unlock (line 100)</a></td><td>called 36775 times, returned 36775 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l261">storage_sqlite_create (line 261)</a></td><td>called 29 times, returned 29 times</td><td>48.0%</td></tr>
+ <tr><td><a href="#l299">storage_sqlite_destroy (line 299)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l251">storage_sqlite_finalize_statements (line 251)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l307">storage_sqlite_find_repo (line 307)</a></td><td>called 9180 times, returned 9180 times</td><td>76.0%</td></tr>
+ <tr><td><a href="#l526">storage_sqlite_get_run_queue (line 526)</a></td><td>called 29 times, returned 29 times</td><td>79.0%</td></tr>
+ <tr><td><a href="#l507">storage_sqlite_get_runs (line 507)</a></td><td>called 26 times, returned 26 times</td><td>82.0%</td></tr>
+ <tr><td><a href="#l335">storage_sqlite_insert_repo (line 335)</a></td><td>called 9180 times, returned 9180 times</td><td>75.0%</td></tr>
+ <tr><td><a href="#l360">storage_sqlite_insert_run (line 360)</a></td><td>called 9180 times, returned 9180 times</td><td>57.0%</td></tr>
+ <tr><td><a href="#l200">storage_sqlite_prepare_statements (line 200)</a></td><td>called 29 times, returned 29 times</td><td>54.0%</td></tr>
+ <tr><td><a href="#l444">storage_sqlite_row_to_run (line 444)</a></td><td>called 9180 times, returned 9180 times</td><td>81.0%</td></tr>
+ <tr><td><a href="#l477">storage_sqlite_rows_to_runs (line 477)</a></td><td>called 55 times, returned 55 times</td><td>67.0%</td></tr>
+ <tr><td><a href="#l397">storage_sqlite_run_create (line 397)</a></td><td>called 9180 times, returned 9180 times</td><td>75.0%</td></tr>
+ <tr><td><a href="#l412">storage_sqlite_run_finished (line 412)</a></td><td>called 9180 times, returned 9180 times</td><td>74.0%</td></tr>
+ <tr><td><a href="#l27">storage_sqlite_settings_create (line 27)</a></td><td>called 29 times, returned 29 times</td><td>23.0%</td></tr>
+ <tr><td><a href="#l51">storage_sqlite_settings_destroy (line 51)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l185">storage_sqlite_setup (line 185)</a></td><td>called 29 times, returned 29 times</td><td>75.0%</td></tr>
+ <tr><td><a href="#l159">storage_sqlite_upgrade (line 159)</a></td><td>called 29 times, returned 29 times</td><td>47.0%</td></tr>
+ <tr><td><a href="#l143">storage_sqlite_upgrade_from_to (line 143)</a></td><td>called 29 times, returned 29 times</td><td>55.0%</td></tr>
+ <tr><td><a href="#l116">storage_sqlite_upgrade_to (line 116)</a></td><td>called 29 times, returned 29 times</td><td>38.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;storage_sqlite.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;process.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;run_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;sql/sqlite_sql.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;sqlite.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;storage.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sqlite3.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;pthread.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite_settings</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_settings_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">path</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite_settings</span><span class="w"> </span><span class="o">*</span><span class="n">sqlite</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite_settings</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">sqlite</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="p">(</span><span class="n">path</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">path</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strdup&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">STORAGE_TYPE_SQLITE</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">sqlite</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">storage_sqlite_settings_destroy</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">path</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">pthread_mutex_t</span><span class="w"> </span><span class="n">mtx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">impl</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">prepared_stmt_init</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">sql</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_mutex_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">mtx</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 174 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">174</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_mutex_init&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_prepare</span><span class="p">(</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">sql</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 174 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">174</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_mtx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_mtx</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_mutex_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">mtx</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_mutex_destroy&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">prepared_stmt_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 174 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">174</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_mutex_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">mtx</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_mutex_destroy&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_finalize</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">174</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36775</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">prepared_stmt_lock</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36775</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_mutex_lock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">mtx</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 36775 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36775</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_mutex_unlock&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36775</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36775</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">prepared_stmt_unlock</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 36775 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">36775</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_mutex_unlock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">mtx</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_mutex_unlock&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36775</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">sqlite3</span><span class="w"> </span><span class="o">*</span><span class="n">db</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="n">stmt_repo_find</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="n">stmt_repo_insert</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="n">stmt_run_insert</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="n">stmt_run_finished</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="n">stmt_get_runs</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="n">stmt_get_run_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_upgrade_to</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">version</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;%s PRAGMA user_version = %zu;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">script</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_schemas</span><span class="p">[</span><span class="n">version</span><span class="p">];</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">snprintf</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">fmt</span><span class="p">,</span><span class="w"> </span><span class="n">script</span><span class="p">,</span><span class="w"> </span><span class="n">version</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">nb</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="p">)</span><span class="n">ret</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">full_script</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="n">nb</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">full_script</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">snprintf</span><span class="p">(</span><span class="n">full_script</span><span class="p">,</span><span class="w"> </span><span class="n">nb</span><span class="p">,</span><span class="w"> </span><span class="n">fmt</span><span class="p">,</span><span class="w"> </span><span class="n">script</span><span class="p">,</span><span class="w"> </span><span class="n">version</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_exec_as_transaction</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">full_script</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">full_script</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_upgrade_from_to</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">from</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">to</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 29 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">58</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">from</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">to</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Upgrading SQLite database from version %zu to version %zu</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_upgrade_to</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Failed to upgrade to version %zu</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_upgrade</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">current_version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_get_user_version</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">current_version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;SQLite database version: %u</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">current_version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">newest_version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">sqlite_schemas</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">sqlite_schemas</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Newest database version: %zu</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">newest_version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">current_version</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">newest_version</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Unknown database version: %u</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">current_version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">current_version</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">newest_version</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;SQLite database already at the newest version</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">storage_sqlite_upgrade_from_to</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">current_version</span><span class="p">,</span><span class="w"> </span><span class="n">newest_version</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_setup</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_set_foreign_keys</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_upgrade</span><span class="p">(</span><span class="n">storage</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_prepare_statements</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt_repo_find</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;SELECT id FROM cimple_repos WHERE url = ?;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt_repo_insert</span><span class="w"> </span><span class="o">=</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;INSERT INTO cimple_repos(url) VALUES (?) ON CONFLICT(url) DO NOTHING;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt_run_insert</span><span class="w"> </span><span class="o">=</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;INSERT INTO cimple_runs(status, exit_code, output, repo_id, repo_rev) VALUES (?, -1, x&#39;&#39;, ?, ?) RETURNING id;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt_run_finished</span><span class="w"> </span><span class="o">=</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;UPDATE cimple_runs SET status = ?, exit_code = ?, output = ? WHERE id = ?;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt_get_runs</span><span class="w"> </span><span class="o">=</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;SELECT id, status, exit_code, repo_url, repo_rev FROM cimple_runs_view ORDER BY id DESC&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="k">const</span><span class="w"> </span><span class="n">fmt_get_run_queue</span><span class="w"> </span><span class="o">=</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="s">&quot;SELECT id, status, exit_code, repo_url, repo_rev FROM cimple_runs_view WHERE status = ? ORDER BY id;&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_find</span><span class="p">,</span><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">fmt_repo_find</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_insert</span><span class="p">,</span><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">fmt_repo_insert</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize_repo_find</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_run_insert</span><span class="p">,</span><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">fmt_run_insert</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize_repo_insert</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_run_finished</span><span class="p">,</span><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">fmt_run_finished</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize_run_insert</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_get_runs</span><span class="p">,</span><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">fmt_get_runs</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize_run_finished</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_get_run_queue</span><span class="p">,</span><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">,</span><span class="w"> </span><span class="n">fmt_get_run_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">finalize_get_runs</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">finalize_get_runs</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_get_runs</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">finalize_run_finished</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_run_finished</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">finalize_run_insert</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_run_insert</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">finalize_repo_insert</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_insert</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">finalize_repo_find</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_find</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">storage_sqlite_finalize_statements</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_get_run_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_get_runs</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_run_finished</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_run_insert</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_insert</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_find</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l265" href="#l265">265</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Using SQLite database at %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">path</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l266" href="#l266">266</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l267" href="#l267">267</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">sqlite</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l268" href="#l268">268</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">sqlite</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l269" href="#l269">269</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l270" href="#l270">270</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l271" href="#l271">271</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l272" href="#l272">272</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l273" href="#l273">273</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_init</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l274" href="#l274">274</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l275" href="#l275">275</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l276" href="#l276">276</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_open_rw</span><span class="p">(</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l277" href="#l277">277</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l278" href="#l278">278</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l279" href="#l279">279</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_setup</span><span class="p">(</span><span class="n">sqlite</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l280" href="#l280">280</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l281" href="#l281">281</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l282" href="#l282">282</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_prepare_statements</span><span class="p">(</span><span class="n">sqlite</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l283" href="#l283">283</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l284" href="#l284">284</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l285" href="#l285">285</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l286" href="#l286">286</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l287" href="#l287">287</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l288" href="#l288">288</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l289" href="#l289">289</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">close</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l290" href="#l290">290</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_close</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l291" href="#l291">291</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l292" href="#l292">292</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">sqlite_destroy</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l293" href="#l293">293</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l294" href="#l294">294</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">sqlite</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l295" href="#l295">295</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l296" href="#l296">296</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l297" href="#l297">297</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l298" href="#l298">298</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l299" href="#l299">299</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">storage_sqlite_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l300" href="#l300">300</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l301" href="#l301">301</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">storage_sqlite_finalize_statements</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l302" href="#l302">302</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_close</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">db</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l303" href="#l303">303</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_destroy</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l304" href="#l304">304</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l305" href="#l305">305</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l306" href="#l306">306</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l307" href="#l307">307</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_find_repo</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l308" href="#l308">308</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l309" href="#l309">309</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_find</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l310" href="#l310">310</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l311" href="#l311">311</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l312" href="#l312">312</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_lock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l313" href="#l313">313</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l314" href="#l314">314</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l315" href="#l315">315</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_text</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l316" href="#l316">316</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l317" href="#l317">317</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l318" href="#l318">318</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_step</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l319" href="#l319">319</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l320" href="#l320">320</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l321" href="#l321">321</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l322" href="#l322">322</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">ret</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l323" href="#l323">323</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l324" href="#l324">324</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l325" href="#l325">325</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l326" href="#l326">326</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l327" href="#l327">327</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l328" href="#l328">328</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">reset</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l329" href="#l329">329</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_reset</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l330" href="#l330">330</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_unlock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l331" href="#l331">331</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l332" href="#l332">332</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l333" href="#l333">333</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l334" href="#l334">334</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l335" href="#l335">335</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_insert_repo</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l336" href="#l336">336</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l337" href="#l337">337</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_repo_insert</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l338" href="#l338">338</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l339" href="#l339">339</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l340" href="#l340">340</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_lock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l341" href="#l341">341</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l342" href="#l342">342</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l343" href="#l343">343</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_text</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l344" href="#l344">344</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l345" href="#l345">345</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l346" href="#l346">346</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_step</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l347" href="#l347">347</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l348" href="#l348">348</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l349" href="#l349">349</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l350" href="#l350">350</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">reset</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l351" href="#l351">351</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_reset</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l352" href="#l352">352</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_unlock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l353" href="#l353">353</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l354" href="#l354">354</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l355" href="#l355">355</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l356" href="#l356">356</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l357" href="#l357">357</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">storage_sqlite_find_repo</span><span class="p">(</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l358" href="#l358">358</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l359" href="#l359">359</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l360" href="#l360">360</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_insert_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage_sqlite</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">repo_id</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l361" href="#l361">361</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l362" href="#l362">362</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">stmt_run_insert</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l363" href="#l363">363</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l364" href="#l364">364</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l365" href="#l365">365</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_lock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l366" href="#l366">366</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l367" href="#l367">367</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l368" href="#l368">368</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">RUN_STATUS_CREATED</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l369" href="#l369">369</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l370" href="#l370">370</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l371" href="#l371">371</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">repo_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l372" href="#l372">372</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l373" href="#l373">373</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l374" href="#l374">374</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_text</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l375" href="#l375">375</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l376" href="#l376">376</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l377" href="#l377">377</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_step</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l378" href="#l378">378</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l379" href="#l379">379</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l380" href="#l380">380</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l381" href="#l381">381</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l382" href="#l382">382</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l383" href="#l383">383</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Failed to insert a run</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l384" href="#l384">384</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l385" href="#l385">385</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l386" href="#l386">386</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l387" href="#l387">387</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l388" href="#l388">388</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l389" href="#l389">389</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l390" href="#l390">390</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">reset</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l391" href="#l391">391</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_reset</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l392" href="#l392">392</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_unlock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l393" href="#l393">393</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l394" href="#l394">394</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l395" href="#l395">395</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l396" href="#l396">396</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l397" href="#l397">397</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_run_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">repo_url</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l398" href="#l398">398</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l399" href="#l399">399</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l400" href="#l400">400</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l401" href="#l401">401</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_insert_repo</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="p">,</span><span class="w"> </span><span class="n">repo_url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l402" href="#l402">402</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l403" href="#l403">403</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l404" href="#l404">404</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l405" href="#l405">405</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_insert_run</span><span class="p">(</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="p">,</span><span class="w"> </span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l406" href="#l406">406</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l407" href="#l407">407</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l408" href="#l408">408</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l409" href="#l409">409</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l410" href="#l410">410</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l411" href="#l411">411</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l412" href="#l412">412</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_run_finished</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">run_id</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l413" href="#l413">413</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l414" href="#l414">414</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l415" href="#l415">415</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">stmt_run_finished</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l416" href="#l416">416</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l417" href="#l417">417</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l418" href="#l418">418</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_lock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l419" href="#l419">419</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l420" href="#l420">420</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l421" href="#l421">421</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">RUN_STATUS_FINISHED</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l422" href="#l422">422</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l423" href="#l423">423</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l424" href="#l424">424</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">ec</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l425" href="#l425">425</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l426" href="#l426">426</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l427" href="#l427">427</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_blob</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="n">output</span><span class="o">-&gt;</span><span class="n">data_size</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l428" href="#l428">428</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l429" href="#l429">429</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l430" href="#l430">430</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="n">run_id</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l431" href="#l431">431</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l432" href="#l432">432</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l433" href="#l433">433</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_step</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l434" href="#l434">434</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l435" href="#l435">435</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l436" href="#l436">436</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l437" href="#l437">437</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">reset</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l438" href="#l438">438</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_reset</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l439" href="#l439">439</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_unlock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l440" href="#l440">440</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l441" href="#l441">441</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l442" href="#l442">442</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l443" href="#l443">443</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l444" href="#l444">444</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_row_to_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">**</span><span class="n">run</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l445" href="#l445">445</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l446" href="#l446">446</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l447" href="#l447">447</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l448" href="#l448">448</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_int</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l449" href="#l449">449</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">status</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_int</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l450" href="#l450">450</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">exit_code</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_int</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l451" href="#l451">451</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l452" href="#l452">452</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l453" href="#l453">453</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_text</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l454" href="#l454">454</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l455" href="#l455">455</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l456" href="#l456">456</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l457" href="#l457">457</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">rev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l458" href="#l458">458</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_column_text</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l459" href="#l459">459</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l460" href="#l460">460</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_url</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l461" href="#l461">461</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l462" href="#l462">462</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">run_new</span><span class="p">(</span><span class="n">run</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">,</span><span class="w"> </span><span class="n">rev</span><span class="p">,</span><span class="w"> </span><span class="n">status</span><span class="p">,</span><span class="w"> </span><span class="n">exit_code</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l463" href="#l463">463</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l464" href="#l464">464</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_rev</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l465" href="#l465">465</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l466" href="#l466">466</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Adding a run %d for repository %s to the queue</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l467" href="#l467">467</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l468" href="#l468">468</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">free_rev</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l469" href="#l469">469</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">rev</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l470" href="#l470">470</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l471" href="#l471">471</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">free_url</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l472" href="#l472">472</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">url</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l473" href="#l473">473</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l474" href="#l474">474</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l475" href="#l475">475</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l476" href="#l476">476</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l477" href="#l477">477</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_rows_to_runs</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">sqlite3_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l478" href="#l478">478</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l479" href="#l479">479</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l480" href="#l480">480</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l481" href="#l481">481</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_queue_create</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l482" href="#l482">482</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l483" href="#l483">483</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l484" href="#l484">484</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9235</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_step</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l485" href="#l485">485</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 55 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9235</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">ret</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l486" href="#l486">486</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l487" href="#l487">487</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l488" href="#l488">488</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">run_queue_destroy</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l489" href="#l489">489</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l490" href="#l490">490</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l491" href="#l491">491</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l492" href="#l492">492</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_row_to_run</span><span class="p">(</span><span class="n">stmt</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l493" href="#l493">493</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l494" href="#l494">494</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">run_queue_destroy</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l495" href="#l495">495</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l496" href="#l496">496</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_queue_add_last</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l497" href="#l497">497</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l498" href="#l498">498</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l499" href="#l499">499</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">55</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l500" href="#l500">500</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l501" href="#l501">501</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">run_queue_destroy</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l502" href="#l502">502</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">run_queue_destroy</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l503" href="#l503">503</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l504" href="#l504">504</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l505" href="#l505">505</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l506" href="#l506">506</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l507" href="#l507">507</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_get_runs</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l508" href="#l508">508</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l509" href="#l509">509</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">stmt_get_runs</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l510" href="#l510">510</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l511" href="#l511">511</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l512" href="#l512">512</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_lock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l513" href="#l513">513</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 26 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l514" href="#l514">514</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l515" href="#l515">515</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_rows_to_runs</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l516" href="#l516">516</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 26 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">26</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l517" href="#l517">517</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l518" href="#l518">518</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l519" href="#l519">519</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="nl">reset</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l520" href="#l520">520</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_reset</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l521" href="#l521">521</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_unlock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l522" href="#l522">522</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l523" href="#l523">523</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">26</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l524" href="#l524">524</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l525" href="#l525">525</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l526" href="#l526">526</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">storage_sqlite_get_run_queue</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">storage</span><span class="w"> </span><span class="o">*</span><span class="n">storage</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l527" href="#l527">527</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l528" href="#l528">528</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">prepared_stmt</span><span class="w"> </span><span class="o">*</span><span class="n">stmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">storage</span><span class="o">-&gt;</span><span class="n">sqlite</span><span class="o">-&gt;</span><span class="n">stmt_get_run_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l529" href="#l529">529</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l530" href="#l530">530</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l531" href="#l531">531</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">prepared_stmt_lock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l532" href="#l532">532</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l533" href="#l533">533</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l534" href="#l534">534</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sqlite_bind_int</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">RUN_STATUS_CREATED</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l535" href="#l535">535</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l536" href="#l536">536</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l537" href="#l537">537</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">storage_sqlite_rows_to_runs</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">,</span><span class="w"> </span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l538" href="#l538">538</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 29 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l539" href="#l539">539</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">reset</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l540" href="#l540">540</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l541" href="#l541">541</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="nl">reset</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l542" href="#l542">542</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">sqlite_reset</span><span class="p">(</span><span class="n">stmt</span><span class="o">-&gt;</span><span class="n">impl</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l543" href="#l543">543</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">prepared_stmt_unlock</span><span class="p">(</span><span class="n">stmt</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l544" href="#l544">544</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l545" href="#l545">545</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l546" href="#l546">546</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l547" href="#l547">547</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.string.c.2a75186e465ffeac1b306a350f4a56f8.html b/coverage/index.string.c.2a75186e465ffeac1b306a350f4a56f8.html
new file mode 100644
index 0000000..f6108b7
--- /dev/null
+++ b/coverage/index.string.c.2a75186e465ffeac1b306a350f4a56f8.html
@@ -0,0 +1,486 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/string.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>6</td>
+ <td>22</td>
+ <td class="coverage-low">27.3%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>1</td>
+ <td>2</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>3</td>
+ <td>16</td>
+ <td class="coverage-low">18.8%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l17">string_append (line 17)</a></td><td>called 340226 times, returned 340226 times</td><td>67.0%</td></tr>
+ <tr><td><a href="#l32">string_to_int (line 32)</a></td><td>not called</td><td>0.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;string.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;errno.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/* glibc calls this stpecpy; it&#39;s not provided by glibc; however, it does</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * provide a possible implementation in string_copying(7), which I copied from. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="nf">string_append</span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">dst</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">end</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">dst</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 340226 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">dst</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">end</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">end</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">memccpy</span><span class="p">(</span><span class="n">dst</span><span class="p">,</span><span class="w"> </span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;\0&#39;</span><span class="p">,</span><span class="w"> </span><span class="n">end</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">dst</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 340226 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">340226</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">p</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">340226</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">end</span><span class="p">[</span><span class="mi">-1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">&#39;\0&#39;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">end</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">string_to_int</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">endptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">errno</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strtol</span><span class="p">(</span><span class="n">src</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">endptr</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">errno</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strtol&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">endptr</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">src</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="o">*</span><span class="n">endptr</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="sc">&#39;\0&#39;</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Invalid number: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">src</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html b/coverage/index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html
new file mode 100644
index 0000000..880ce36
--- /dev/null
+++ b/coverage/index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html
@@ -0,0 +1,2276 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/tcp_server.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>87</td>
+ <td>122</td>
+ <td class="coverage-low">71.3%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>11</td>
+ <td>11</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>27</td>
+ <td>66</td>
+ <td class="coverage-low">40.9%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l156">client_create (line 156)</a></td><td>called 27620 times, returned 27620 times</td><td>24.0%</td></tr>
+ <tr><td><a href="#l131">client_create_thread (line 131)</a></td><td>called 27620 times, returned 27620 times</td><td>50.0%</td></tr>
+ <tr><td><a href="#l86">client_destroy (line 86)</a></td><td>called 27620 times, returned 27620 times</td><td>62.0%</td></tr>
+ <tr><td><a href="#l97">client_destroy_handler (line 97)</a></td><td>called 27620 times, returned 27620 times</td><td>75.0%</td></tr>
+ <tr><td><a href="#l201">client_queue_create (line 201)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l206">client_queue_destroy (line 206)</a></td><td>called 29 times, returned 29 times</td><td>60.0%</td></tr>
+ <tr><td><a href="#l107">client_thread_func (line 107)</a></td><td>called 27620 times, returned 27620 times</td><td>54.0%</td></tr>
+ <tr><td><a href="#l268">tcp_server_accept (line 268)</a></td><td>called 27620 times, returned 27620 times</td><td>60.0%</td></tr>
+ <tr><td><a href="#l216">tcp_server_accept_handler (line 216)</a></td><td>called 27620 times, returned 27620 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l223">tcp_server_create (line 223)</a></td><td>called 29 times, returned 29 times</td><td>40.0%</td></tr>
+ <tr><td><a href="#l261">tcp_server_destroy (line 261)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;tcp_server.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;event_loop.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;file.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;net.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;signal.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;poll.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;pthread.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;signal.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/eventfd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/queue.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This is a simple threaded TCP server implementation. Each client is handled</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * in a separate thread.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * It used to be much simpler; basically, we have two types of client</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * connections: those made by cimple-worker and cimple-client respectively.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * cimple-server would keep track of cimple-worker threads/connections, and</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * clean them up when assigning tasks/on shutdown.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * What about cimple-client connections though? I struggled to come up with a</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * scheme that would allow cimple-server to clean them up gracefully. When</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * would it do the cleanup even? I didn&#39;t want to do it on shutdown, since</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * there would be potentially a lot of them.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * One solution is to make client threads detached. This is a common advise;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * I really don&#39;t understand the merit of this approach though. Client threads</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * actively work on shared data, take locks, etc. Data corruption is very</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * likely after the main thread exits and all the rest are killed.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Another approach is pre-threading; we make a number of threads beforehand</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * and handle all client connections; I view this approach as limiting in</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * principle; probably that&#39;s foolish of me.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Finally, I cannot bring myself to do non-blocking I/O. I honestly fear the</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * amount of work it would require to maintain read buffers, etc.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * So I came up with this convoluted scheme. The TCP server adds the listening</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * socket to the event loop, as before. Each client thread makes an eventfd</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * descriptor that it writes to when it&#39;s about to finish. The eventfd</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * descriptor is added to the event loop; once it&#39;s readable, we clean up the</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * client thread quickly from the main event loop thread. The TCP server itself</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * keeps track of client threads; on shutdown, it cleans up those still working.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> *</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * I&#39;m _really_ not sure about this approach, it seems fishy as hell; I guess,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * we&#39;ll see.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">cleanup_fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">pid_t</span><span class="w"> </span><span class="n">tid</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">pthread_t</span><span class="w"> </span><span class="kr">thread</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">SIMPLEQ_ENTRY</span><span class="p">(</span><span class="n">client</span><span class="p">)</span><span class="w"> </span><span class="n">entries</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="n">SIMPLEQ_HEAD</span><span class="p">(</span><span class="n">client_queue</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">tcp_server_conn_handler</span><span class="w"> </span><span class="n">conn_handler</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">conn_handler_arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client_queue</span><span class="w"> </span><span class="n">client_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">accept_fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">client_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot;Cleaning up client thread %d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">tid</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">8/8</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 13827 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 13793 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 4449 times.</div>
+ <div class="takenBranch">&check; Branch 3 taken 9378 times.</div>
+ <div class="takenBranch">&check; Branch 4 taken 16151 times.</div>
+ <div class="takenBranch">&check; Branch 5 taken 13793 times.</div>
+ <div class="takenBranch">&check; Branch 6 taken 9380 times.</div>
+ <div class="takenBranch">&check; Branch 7 taken 4413 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">43771</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_REMOVE</span><span class="p">(</span><span class="o">&amp;</span><span class="n">client</span><span class="o">-&gt;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">client_queue</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">pthread_errno_if</span><span class="p">(</span><span class="n">pthread_join</span><span class="p">(</span><span class="n">client</span><span class="o">-&gt;</span><span class="kr">thread</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;pthread_join&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">file_close</span><span class="p">(</span><span class="n">client</span><span class="o">-&gt;</span><span class="n">cleanup_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">client</span><span class="o">-&gt;</span><span class="n">conn_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">client_destroy_handler</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">revents</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_client</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_client</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot;Client thread %d indicated that it&#39;s done</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">tid</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client_destroy</span><span class="p">(</span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="nf">client_thread_func</span><span class="p">(</span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_client</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_client</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">tid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gettid</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_debug</span><span class="p">(</span><span class="s">&quot;New client thread thread %d has started</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">tid</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* Let the client thread handle its signals except those that should be</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * handled in the main thread. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">signal_block_sigterms</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">cleanup</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">conn_handler</span><span class="p">(</span><span class="n">client</span><span class="o">-&gt;</span><span class="n">conn_fd</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">conn_handler_arg</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">cleanup</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="nl">cleanup</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/4</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 4 not taken.</div>
+ <div class="notTakenBranch">&cross; Branch 5 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log_errno_if</span><span class="p">(</span><span class="n">eventfd_write</span><span class="p">(</span><span class="n">client</span><span class="o">-&gt;</span><span class="n">cleanup_fd</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;eventfd_write&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">client_create_thread</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">sigset_t</span><span class="w"> </span><span class="n">old_mask</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* Block all signals (we&#39;ll unblock them later); the client thread will</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * have all signals blocked initially. This allows the main thread to</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * handle SIGINT/SIGTERM/etc. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">signal_block_all</span><span class="p">(</span><span class="o">&amp;</span><span class="n">old_mask</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pthread_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">client</span><span class="o">-&gt;</span><span class="kr">thread</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">client_thread_func</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 27620 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">pthread_errno</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;pthread_create&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">restore_mask</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="nl">restore_mask</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* Restore the previously-enabled signals for handling in the main thread. */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">signal_set_mask</span><span class="p">(</span><span class="o">&amp;</span><span class="n">old_mask</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">client_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">client</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">conn_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">eventfd</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">EFD_CLOEXEC</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;eventfd&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">cleanup_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_add_once</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="o">-&gt;</span><span class="n">cleanup_fd</span><span class="p">,</span><span class="w"> </span><span class="n">POLLIN</span><span class="p">,</span><span class="w"> </span><span class="n">client_destroy_handler</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_cleanup_fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INSERT_TAIL</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">client_queue</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client_create_thread</span><span class="p">(</span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">remove_from_client_queue</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">remove_from_client_queue</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">SIMPLEQ_REMOVE</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">client_queue</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">close_cleanup_fd</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">file_close</span><span class="p">(</span><span class="n">client</span><span class="o">-&gt;</span><span class="n">cleanup_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">client</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">client_queue_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client_queue</span><span class="w"> </span><span class="o">*</span><span class="n">client_queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INIT</span><span class="p">(</span><span class="n">client_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">client_queue_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">client_queue</span><span class="w"> </span><span class="o">*</span><span class="n">client_queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="n">client_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">entry1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">client</span><span class="w"> </span><span class="o">*</span><span class="n">entry2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_NEXT</span><span class="p">(</span><span class="n">entry1</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">client_destroy</span><span class="p">(</span><span class="n">entry1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry2</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">tcp_server_accept_handler</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">revents</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">tcp_server_accept</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">tcp_server_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">**</span><span class="n">_server</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">port</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">tcp_server_conn_handler</span><span class="w"> </span><span class="n">conn_handler</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">conn_handler_arg</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">calloc</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">server</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">loop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">loop</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">conn_handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">conn_handler</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">conn_handler_arg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">conn_handler_arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client_queue_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">client_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_bind</span><span class="p">(</span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">accept_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_add</span><span class="p">(</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">server</span><span class="o">-&gt;</span><span class="n">accept_fd</span><span class="p">,</span><span class="w"> </span><span class="n">POLLIN</span><span class="p">,</span><span class="w"> </span><span class="n">tcp_server_accept_handler</span><span class="p">,</span><span class="w"> </span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">29</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">server</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">close</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">accept_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">tcp_server_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">accept_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">client_queue_destroy</span><span class="p">(</span><span class="o">&amp;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">client_queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l265" href="#l265">265</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">server</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l266" href="#l266">266</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l267" href="#l267">267</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l268" href="#l268">268</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">tcp_server_accept</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">tcp_server</span><span class="w"> </span><span class="o">*</span><span class="n">server</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l269" href="#l269">269</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l270" href="#l270">270</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">conn_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">,</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l271" href="#l271">271</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l272" href="#l272">272</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_accept</span><span class="p">(</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">accept_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l273" href="#l273">273</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l274" href="#l274">274</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l275" href="#l275">275</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">conn_fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l276" href="#l276">276</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l277" href="#l277">277</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client_create</span><span class="p">(</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="n">conn_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l278" href="#l278">278</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 27620 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">27620</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l279" href="#l279">279</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_conn</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l280" href="#l280">280</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l281" href="#l281">281</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27620</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l282" href="#l282">282</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l283" href="#l283">283</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">close_conn</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l284" href="#l284">284</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">conn_fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l285" href="#l285">285</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l286" href="#l286">286</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l287" href="#l287">287</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l288" href="#l288">288</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html b/coverage/index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html
new file mode 100644
index 0000000..fa4c39a
--- /dev/null
+++ b/coverage/index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html
@@ -0,0 +1,2243 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/worker.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>106</td>
+ <td>151</td>
+ <td class="coverage-low">70.2%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>9</td>
+ <td>9</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>27</td>
+ <td>62</td>
+ <td class="coverage-low">43.5%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l105">worker_create (line 105)</a></td><td>called 54 times, returned 54 times</td><td>44.0%</td></tr>
+ <tr><td><a href="#l166">worker_destroy (line 166)</a></td><td>called 54 times, returned 54 times</td><td>91.0%</td></tr>
+ <tr><td><a href="#l178">worker_do_run (line 178)</a></td><td>called 9180 times, returned 9180 times</td><td>65.0%</td></tr>
+ <tr><td><a href="#l224">worker_get_run (line 224)</a></td><td>called 9234 times, returned 9234 times</td><td>77.0%</td></tr>
+ <tr><td><a href="#l85">worker_handle_cmd_start_run (line 85)</a></td><td>called 9180 times, returned 9180 times</td><td>80.0%</td></tr>
+ <tr><td><a href="#l260">worker_main (line 260)</a></td><td>called 54 times, returned 54 times</td><td>83.0%</td></tr>
+ <tr><td><a href="#l77">worker_set_stopping (line 77)</a></td><td>called 54 times, returned 54 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l39">worker_settings_copy (line 39)</a></td><td>called 54 times, returned 54 times</td><td>21.0%</td></tr>
+ <tr><td><a href="#l70">worker_settings_destroy (line 70)</a></td><td>called 54 times, returned 54 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;worker.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;ci.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;command.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;compiler.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;event_loop.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;git.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;net.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;process.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;protocol.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;run_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;signal.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;poll.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">stopping</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_dispatcher</span><span class="w"> </span><span class="o">*</span><span class="n">cmd_dispatcher</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">event_loop</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">signalfd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">run</span><span class="w"> </span><span class="o">*</span><span class="n">run</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">worker_settings_copy</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">src</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="o">*</span><span class="n">src</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">result</span><span class="o">-&gt;</span><span class="n">host</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="p">(</span><span class="n">src</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strdup&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">result</span><span class="o">-&gt;</span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="p">(</span><span class="n">src</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">result</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;strdup&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_host</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_host</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">((</span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">result</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_result</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="n">worker_settings_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">((</span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">((</span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">worker_set_stopping</span><span class="p">(</span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">event_loop</span><span class="w"> </span><span class="o">*</span><span class="n">loop</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">revents</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_worker</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_worker</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">worker_handle_cmd_start_run</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">request</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">UNUSED</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_response</span><span class="w"> </span><span class="o">**</span><span class="n">response</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">_ctx</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_conn_ctx</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">_ctx</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">ctx</span><span class="o">-&gt;</span><span class="n">arg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_parse_start_run</span><span class="p">(</span><span class="n">request</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l97" href="#l97">97</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l98" href="#l98">98</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l99" href="#l99">99</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cmd_desc</span><span class="w"> </span><span class="n">commands</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l100" href="#l100">100</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="n">CMD_START_RUN</span><span class="p">,</span><span class="w"> </span><span class="n">worker_handle_cmd_start_run</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l101" href="#l101">101</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l102" href="#l102">102</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l103" href="#l103">103</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">numof_commands</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">commands</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">commands</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l104" href="#l104">104</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l105" href="#l105">105</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">worker_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">**</span><span class="n">_worker</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l106" href="#l106">106</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l107" href="#l107">107</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l108" href="#l108">108</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l110" href="#l110">110</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">worker</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l111" href="#l111">111</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l112" href="#l112">112</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l113" href="#l113">113</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l114" href="#l114">114</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l115" href="#l115">115</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker_settings_copy</span><span class="p">(</span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l116" href="#l116">116</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l117" href="#l117">117</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l118" href="#l118">118</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l119" href="#l119">119</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l122" href="#l122">122</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l123" href="#l123">123</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">cmd_dispatcher_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">,</span><span class="w"> </span><span class="n">commands</span><span class="p">,</span><span class="w"> </span><span class="n">numof_commands</span><span class="p">,</span><span class="w"> </span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l124" href="#l124">124</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l125" href="#l125">125</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l126" href="#l126">126</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l127" href="#l127">127</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l128" href="#l128">128</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l129" href="#l129">129</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_cmd_dispatcher</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l130" href="#l130">130</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l131" href="#l131">131</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">signalfd_create_sigterms</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l132" href="#l132">132</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l133" href="#l133">133</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_event_loop</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l134" href="#l134">134</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l135" href="#l135">135</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l136" href="#l136">136</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_add</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">,</span><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="p">,</span><span class="w"> </span><span class="n">POLLIN</span><span class="p">,</span><span class="w"> </span><span class="n">worker_set_stopping</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l137" href="#l137">137</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l138" href="#l138">138</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l139" href="#l139">139</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_signalfd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l140" href="#l140">140</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l141" href="#l141">141</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">libgit_init</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l142" href="#l142">142</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l143" href="#l143">143</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_signalfd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l144" href="#l144">144</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l145" href="#l145">145</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_worker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l146" href="#l146">146</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l147" href="#l147">147</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l148" href="#l148">148</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">close_signalfd</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l149" href="#l149">149</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">signalfd_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l150" href="#l150">150</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l151" href="#l151">151</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_event_loop</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l152" href="#l152">152</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">event_loop_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l153" href="#l153">153</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l154" href="#l154">154</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">destroy_cmd_dispatcher</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l155" href="#l155">155</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">cmd_dispatcher_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l156" href="#l156">156</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l157" href="#l157">157</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_settings</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l158" href="#l158">158</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">worker_settings_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l159" href="#l159">159</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l160" href="#l160">160</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l161" href="#l161">161</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l162" href="#l162">162</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l163" href="#l163">163</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l164" href="#l164">164</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l165" href="#l165">165</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l166" href="#l166">166</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">worker_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l167" href="#l167">167</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l168" href="#l168">168</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Shutting down</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l169" href="#l169">169</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l170" href="#l170">170</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">libgit_shutdown</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l171" href="#l171">171</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">signalfd_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">signalfd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l172" href="#l172">172</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">event_loop_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l173" href="#l173">173</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">cmd_dispatcher_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l174" href="#l174">174</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker_settings_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l175" href="#l175">175</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l176" href="#l176">176</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l177" href="#l177">177</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l178" href="#l178">178</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">worker_do_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l179" href="#l179">179</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l180" href="#l180">180</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l181" href="#l181">181</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l182" href="#l182">182</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">process_output</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l183" href="#l183">183</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">process_output_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l184" href="#l184">184</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l185" href="#l185">185</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l186" href="#l186">186</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l187" href="#l187">187</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ci_run_git_repo</span><span class="p">(</span><span class="n">run_get_repo_url</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">run</span><span class="p">),</span><span class="w"> </span><span class="n">run_get_repo_rev</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">run</span><span class="p">),</span><span class="w"> </span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l188" href="#l188">188</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l189" href="#l189">189</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_err</span><span class="p">(</span><span class="s">&quot;Run failed with an error</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l190" href="#l190">190</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l191" href="#l191">191</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l192" href="#l192">192</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l193" href="#l193">193</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">process_output_dump</span><span class="p">(</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l194" href="#l194">194</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l195" href="#l195">195</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">finished_request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l196" href="#l196">196</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l197" href="#l197">197</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_create_finished_run</span><span class="p">(</span><span class="o">&amp;</span><span class="n">finished_request</span><span class="p">,</span><span class="w"> </span><span class="n">run_get_id</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">run</span><span class="p">),</span><span class="w"> </span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l198" href="#l198">198</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l199" href="#l199">199</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_output</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l200" href="#l200">200</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l201" href="#l201">201</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_connect</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">,</span><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l202" href="#l202">202</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l203" href="#l203">203</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">free_request</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l204" href="#l204">204</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l205" href="#l205">205</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l206" href="#l206">206</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_send</span><span class="p">(</span><span class="n">finished_request</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l207" href="#l207">207</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9180 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l208" href="#l208">208</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close_conn</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l209" href="#l209">209</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l210" href="#l210">210</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">close_conn</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l211" href="#l211">211</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l212" href="#l212">212</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l213" href="#l213">213</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">free_request</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l214" href="#l214">214</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="n">finished_request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l215" href="#l215">215</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l216" href="#l216">216</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="nl">free_output</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l217" href="#l217">217</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">process_output_destroy</span><span class="p">(</span><span class="n">result</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l218" href="#l218">218</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l219" href="#l219">219</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">run_destroy</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">run</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l220" href="#l220">220</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l221" href="#l221">221</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l222" href="#l222">222</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l223" href="#l223">223</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l224" href="#l224">224</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">worker_get_run</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l225" href="#l225">225</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l226" href="#l226">226</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l227" href="#l227">227</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l228" href="#l228">228</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">net_connect</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">,</span><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l229" href="#l229">229</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l230" href="#l230">230</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l231" href="#l231">231</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l232" href="#l232">232</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l233" href="#l233">233</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">jsonrpc_request</span><span class="w"> </span><span class="o">*</span><span class="n">new_worker_request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l234" href="#l234">234</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">request_create_new_worker</span><span class="p">(</span><span class="o">&amp;</span><span class="n">new_worker_request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l235" href="#l235">235</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l236" href="#l236">236</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l237" href="#l237">237</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l238" href="#l238">238</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">jsonrpc_request_send</span><span class="p">(</span><span class="n">new_worker_request</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l239" href="#l239">239</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">jsonrpc_request_destroy</span><span class="p">(</span><span class="n">new_worker_request</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l240" href="#l240">240</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l241" href="#l241">241</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l242" href="#l242">242</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l243" href="#l243">243</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_add_once</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">POLLIN</span><span class="p">,</span><span class="w"> </span><span class="n">cmd_dispatcher_handle_event</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l244" href="#l244">244</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">cmd_dispatcher</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l245" href="#l245">245</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l246" href="#l246">246</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l247" href="#l247">247</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l248" href="#l248">248</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="s">&quot;Waiting for a new command</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l249" href="#l249">249</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l250" href="#l250">250</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">event_loop_run</span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">event_loop</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l251" href="#l251">251</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9234 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l252" href="#l252">252</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">close</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l253" href="#l253">253</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l254" href="#l254">254</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="nl">close</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l255" href="#l255">255</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l256" href="#l256">256</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l257" href="#l257">257</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l258" href="#l258">258</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l259" href="#l259">259</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l260" href="#l260">260</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">worker_main</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l261" href="#l261">261</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l262" href="#l262">262</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l263" href="#l263">263</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l264" href="#l264">264</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l265" href="#l265">265</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker_get_run</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l266" href="#l266">266</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l267" href="#l267">267</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l268" href="#l268">268</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l269" href="#l269">269</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 54 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">worker</span><span class="o">-&gt;</span><span class="n">stopping</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l270" href="#l270">270</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l271" href="#l271">271</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l272" href="#l272">272</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker_do_run</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l273" href="#l273">273</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9180</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l274" href="#l274">274</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l275" href="#l275">275</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l276" href="#l276">276</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l277" href="#l277">277</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l278" href="#l278">278</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l279" href="#l279">279</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html b/coverage/index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html
new file mode 100644
index 0000000..e441476
--- /dev/null
+++ b/coverage/index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html
@@ -0,0 +1,814 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/worker_main.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>34</td>
+ <td>43</td>
+ <td class="coverage-medium">79.1%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>4</td>
+ <td>4</td>
+ <td class="coverage-high">100.0%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>10</td>
+ <td>14</td>
+ <td class="coverage-low">71.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l16">default_settings (line 16)</a></td><td>called 60 times, returned 60 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l25">get_usage_string (line 25)</a></td><td>called 4 times, returned 4 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l73">main (line 73)</a></td><td>called 60 times, returned 54 times</td><td>79.0%</td></tr>
+ <tr><td><a href="#l30">parse_settings (line 30)</a></td><td>called 60 times, returned 54 times</td><td>76.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2022 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;cmd_line.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;const.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;worker.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;getopt.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;unistd.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">default_settings</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">settings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">.</span><span class="n">host</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_host</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">.</span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_port</span><span class="p">,</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">4</td>
+ <td class="src coveredLine"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">get_usage_string</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">4</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="s">&quot;[-h|--help] [-V|--version] [-v|--verbose] [-H|--host HOST] [-p|--port PORT]&quot;</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">parse_settings</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">opt</span><span class="p">,</span><span class="w"> </span><span class="n">longind</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">settings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">default_settings</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* clang-format off */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">option</span><span class="w"> </span><span class="n">long_options</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;help&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;h&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;version&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;V&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;verbose&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">no_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;v&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;host&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">required_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;H&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="s">&quot;port&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">required_argument</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="sc">&#39;p&#39;</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="cm">/* clang-format on */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 1 taken 114 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">168</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">((</span><span class="n">opt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">getopt_long</span><span class="p">(</span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;hVvH:p:&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">long_options</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">longind</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">-1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">5/6</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 2 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 2 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ <div class="takenBranch">&check; Branch 3 taken 54 times.</div>
+ <div class="takenBranch">&check; Branch 4 taken 54 times.</div>
+ <div class="takenBranch">&check; Branch 5 taken 2 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">114</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">opt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;h&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;V&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_version</span><span class="p">();</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;v&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">g_log_lvl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LOG_LVL_DEBUG</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;H&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">host</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">optarg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">&#39;p&#39;</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">settings</span><span class="o">-&gt;</span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">optarg</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">default</span><span class="o">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">2</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">exit_with_usage</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">break</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="n">main</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">settings</span><span class="w"> </span><span class="n">settings</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">60</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">parse_settings</span><span class="p">(</span><span class="o">&amp;</span><span class="n">settings</span><span class="p">,</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l83" href="#l83">83</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">worker</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">settings</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l84" href="#l84">84</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 54 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l85" href="#l85">85</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l86" href="#l86">86</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l87" href="#l87">87</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">worker_main</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l88" href="#l88">88</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 54 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">54</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l89" href="#l89">89</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">destroy_worker</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l90" href="#l90">90</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l91" href="#l91">91</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="nl">destroy_worker</span><span class="p">:</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l92" href="#l92">92</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker_destroy</span><span class="p">(</span><span class="n">worker</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l93" href="#l93">93</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l94" href="#l94">94</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l95" href="#l95">95</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l96" href="#l96">96</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html b/coverage/index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html
new file mode 100644
index 0000000..bc6eae5
--- /dev/null
+++ b/coverage/index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html
@@ -0,0 +1,703 @@
+<!DOCTYPE html>
+<html class="theme-green">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>GCC Code Coverage Report</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="index.css"/>
+ </head>
+
+ <body>
+ <header>
+ <h1>GCC Code Coverage Report</h1>
+
+ <hr/>
+
+ <div class="summary">
+<div>
+ <table class="legend">
+ <tr>
+ <th scope="row">Directory:</th>
+ <td>src/</td>
+ </tr>
+ <tr>
+ <th scope="row">File:</th>
+ <td>src/worker_queue.c</td>
+ </tr>
+ <tr>
+ <th scope="row">Date:</th>
+ <td>2024-12-26 11:11:59</td>
+ </tr>
+ </table>
+</div>
+<div>
+ <table class="coverage">
+ <tr>
+ <th></th>
+ <th scope="col">Exec</th>
+ <th scope="col">Total</th>
+ <th scope="col">Coverage</th>
+ </tr>
+ <tr>
+ <th scope="row">Lines:</th>
+ <td>32</td>
+ <td>37</td>
+ <td class="coverage-medium">86.5%</td>
+ </tr>
+ <tr>
+ <th scope="row">Functions:</th>
+ <td>8</td>
+ <td>9</td>
+ <td class="coverage-medium">88.9%</td>
+ </tr>
+ <tr>
+ <th scope="row">Branches:</th>
+ <td>5</td>
+ <td>10</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+ </header>
+
+ <nav>
+<details>
+ <summary>List of functions</summary>
+ <table class="listOfFunctions">
+ <tr>
+ <th>Function (Line)</th>
+ <th>Call count</th>
+ <th>Block coverage</th>
+ </tr>
+ <tr><td><a href="#l20">worker_create (line 20)</a></td><td>called 9234 times, returned 9234 times</td><td>27.0%</td></tr>
+ <tr><td><a href="#l34">worker_destroy (line 34)</a></td><td>called 9234 times, returned 9234 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l40">worker_get_fd (line 40)</a></td><td>called 36774 times, returned 36774 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l66">worker_queue_add_first (line 66)</a></td><td>not called</td><td>0.0%</td></tr>
+ <tr><td><a href="#l71">worker_queue_add_last (line 71)</a></td><td>called 9234 times, returned 9234 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l45">worker_queue_create (line 45)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l50">worker_queue_destroy (line 50)</a></td><td>called 29 times, returned 29 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l61">worker_queue_is_empty (line 61)</a></td><td>called 27215 times, returned 27215 times</td><td>100.0%</td></tr>
+ <tr><td><a href="#l76">worker_queue_remove_first (line 76)</a></td><td>called 9180 times, returned 9180 times</td><td>100.0%</td></tr>
+ </table>
+</details>
+
+ </nav>
+
+ <main>
+<div class="file-source">
+ <table>
+ <tr>
+ <th align="right">Line</th>
+ <th align="right">Branch</th>
+ <th align="right">Exec</th>
+ <th align="left">Source</th>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l1" href="#l1">1</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm">/*</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l2" href="#l2">2</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Copyright (c) 2023 Egor Tensin &lt;egor@tensin.name&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l3" href="#l3">3</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * This file is part of the &quot;cimple&quot; project.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l4" href="#l4">4</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * For details, see https://github.com/egor-tensin/cimple.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l5" href="#l5">5</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> * Distributed under the MIT License.</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l6" href="#l6">6</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cm"> */</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l7" href="#l7">7</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l8" href="#l8">8</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;worker_queue.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l9" href="#l9">9</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;log.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l10" href="#l10">10</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;net.h&quot;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l11" href="#l11">11</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l12" href="#l12">12</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l13" href="#l13">13</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;sys/queue.h&gt;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l14" href="#l14">14</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l15" href="#l15">15</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l16" href="#l16">16</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l17" href="#l17">17</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="n">SIMPLEQ_ENTRY</span><span class="p">(</span><span class="n">worker</span><span class="p">)</span><span class="w"> </span><span class="n">entries</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l18" href="#l18">18</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">};</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l19" href="#l19">19</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l20" href="#l20">20</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">worker_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">**</span><span class="n">_entry</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l21" href="#l21">21</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l22" href="#l22">22</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="p">));</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l23" href="#l23">23</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">1/2</summary>
+ <div class="linebranchContents">
+ <div class="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9234 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount partialCoveredLine">9234</td>
+ <td class="src partialCoveredLine"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">entry</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l24" href="#l24">24</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">log_errno</span><span class="p">(</span><span class="s">&quot;malloc&quot;</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l25" href="#l25">25</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l26" href="#l26">26</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l27" href="#l27">27</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l28" href="#l28">28</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l29" href="#l29">29</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l30" href="#l30">30</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="o">*</span><span class="n">_entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l31" href="#l31">31</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l32" href="#l32">32</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l33" href="#l33">33</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l34" href="#l34">34</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">worker_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l35" href="#l35">35</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l36" href="#l36">36</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">net_close</span><span class="p">(</span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">fd</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l37" href="#l37">37</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">entry</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l38" href="#l38">38</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l39" href="#l39">39</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l40" href="#l40">40</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36774</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">worker_get_fd</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l41" href="#l41">41</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l42" href="#l42">42</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">36774</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">entry</span><span class="o">-&gt;</span><span class="n">fd</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l43" href="#l43">43</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l44" href="#l44">44</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l45" href="#l45">45</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">worker_queue_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l46" href="#l46">46</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l47" href="#l47">47</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INIT</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l48" href="#l48">48</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l49" href="#l49">49</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l50" href="#l50">50</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">worker_queue_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l51" href="#l51">51</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l52" href="#l52">52</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l53" href="#l53">53</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 54 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">83</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">entry1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l54" href="#l54">54</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_NEXT</span><span class="p">(</span><span class="n">entry1</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l55" href="#l55">55</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">worker_destroy</span><span class="p">(</span><span class="n">entry1</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l56" href="#l56">56</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">54</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">entry1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">entry2</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l57" href="#l57">57</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="w"> </span><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l58" href="#l58">58</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INIT</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l59" href="#l59">59</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">29</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l60" href="#l60">60</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l61" href="#l61">61</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27215</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">worker_queue_is_empty</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l62" href="#l62">62</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l63" href="#l63">63</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">27215</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">SIMPLEQ_EMPTY</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l64" href="#l64">64</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l65" href="#l65">65</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l66" href="#l66">66</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">worker_queue_add_first</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l67" href="#l67">67</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l68" href="#l68">68</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INSERT_HEAD</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l69" href="#l69">69</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l70" href="#l70">70</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l71" href="#l71">71</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">worker_queue_add_last</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l72" href="#l72">72</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l73" href="#l73">73</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_INSERT_TAIL</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">entry</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l74" href="#l74">74</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9234</td>
+ <td class="src coveredLine"><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l75" href="#l75">75</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l76" href="#l76">76</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">worker_queue_remove_first</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">worker_queue</span><span class="w"> </span><span class="o">*</span><span class="n">queue</span><span class="p">)</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l77" href="#l77">77</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">{</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l78" href="#l78">78</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">worker</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIMPLEQ_FIRST</span><span class="p">(</span><span class="n">queue</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l79" href="#l79">79</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary class="linebranchSummary">2/2</summary>
+ <div class="linebranchContents">
+ <div class="takenBranch">&check; Branch 0 taken 9063 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 117 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="n">SIMPLEQ_REMOVE_HEAD</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span><span class="w"> </span><span class="n">entries</span><span class="p">);</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l80" href="#l80">80</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">entry</span><span class="p">;</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l81" href="#l81">81</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "><span class="p">}</span></td>
+ </tr>
+ <tr class="source-line">
+ <td class="lineno"><a id="l82" href="#l82">82</a></td>
+ <td class="linebranch">
+ </td>
+ <td class="linecount "></td>
+ <td class="src "></td>
+ </tr>
+ </table>
+</div>
+ <hr/>
+ </main>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com/en/7.0">GCOVR (Version 7.0)</a>
+ </footer>
+ </body>
+</html>