aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/index.base64.c.6cc41135837c80527c8f246c27adf87e.html603
-rw-r--r--coverage/index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html517
-rw-r--r--coverage/index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html990
-rw-r--r--coverage/index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html1121
-rw-r--r--coverage/index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html909
-rw-r--r--coverage/index.cmd_line.c.fc55483624faae9ff92546137d095857.html680
-rw-r--r--coverage/index.command.c.d26991ef13eb41283f88bf34125ef986.html2048
-rw-r--r--coverage/index.css505
-rw-r--r--coverage/index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html2163
-rw-r--r--coverage/index.file.c.0cc24881e570d19e625204519d50254f.html1491
-rw-r--r--coverage/index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html1092
-rw-r--r--coverage/index.html475
-rw-r--r--coverage/index.json.c.9fe0913c76249e448eec3131d7e8b263.html2632
-rw-r--r--coverage/index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html4816
-rw-r--r--coverage/index.log.c.47179e5db7ed3f2db741c99372ba24f3.html539
-rw-r--r--coverage/index.net.c.37012fce13860cefc5963f57e0f36732.html2386
-rw-r--r--coverage/index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html1491
-rw-r--r--coverage/index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html2054
-rw-r--r--coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html1816
-rw-r--r--coverage/index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html4455
-rw-r--r--coverage/index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html885
-rw-r--r--coverage/index.signal.c.71d63611c8a63e0778dd598afad76dfd.html826
-rw-r--r--coverage/index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html2733
-rw-r--r--coverage/index.storage.c.96d197609feea4b630e7b775fb18af81.html1189
-rw-r--r--coverage/index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html4906
-rw-r--r--coverage/index.string.c.2a75186e465ffeac1b306a350f4a56f8.html515
-rw-r--r--coverage/index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html2532
-rw-r--r--coverage/index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html2492
-rw-r--r--coverage/index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html885
-rw-r--r--coverage/index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html755
30 files changed, 50501 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..6de630e
--- /dev/null
+++ b/coverage/index.base64.c.6cc41135837c80527c8f246c27adf87e.html
@@ -0,0 +1,603 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>3</td>
+ <td>12</td>
+ <td class="coverage-low">25.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">dst</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">dst</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..7988fce
--- /dev/null
+++ b/coverage/index.buf.c.ed8381695b8bbc07634acc8fcf3aab27.html
@@ -0,0 +1,517 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>1</td>
+ <td>4</td>
+ <td class="coverage-low">25.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">92012</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">buf</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..3bccad8
--- /dev/null
+++ b/coverage/index.ci.c.aafc6aa1373a4054fe8dceca1e5a2cd2.html
@@ -0,0 +1,990 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>9</td>
+ <td>18</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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">proc_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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span><span class="w"></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><span class="w"></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 coveredLine">36720</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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">my_chdir</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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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">my_chdir</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..be1da71
--- /dev/null
+++ b/coverage/index.client.c.7eeddcdb2bd1344daca0a340abd305ae.html
@@ -0,0 +1,1121 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>17</td>
+ <td>30</td>
+ <td class="coverage-low">56.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">client</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">argc</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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">!=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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_str</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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 coveredLine">9206</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">jsonrpc_response_is_error</span><span class="p">(</span><span class="n">response</span><span class="p">))</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..47d3a69
--- /dev/null
+++ b/coverage/index.client_main.c.0ff1a98449e6ae22cf540fe28921fa2d.html
@@ -0,0 +1,909 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>10</td>
+ <td>14</td>
+ <td class="coverage-low">71.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18422</td>
+ <td class="src coveredLine"><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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..fbaa218
--- /dev/null
+++ b/coverage/index.cmd_line.c.fc55483624faae9ff92546137d095857.html
@@ -0,0 +1,680 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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>31</td>
+ <td class="coverage-high">90.3%</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/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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">my_readlink</span><span class="p">(</span><span class="s">&quot;/proc/self/exe&quot;</span><span class="p">);</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">20</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">path</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">20</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">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">14</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;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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">2</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">msg</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">6</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..6eca578
--- /dev/null
+++ b/coverage/index.command.c.d26991ef13eb41283f88bf34125ef986.html
@@ -0,0 +1,2048 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>33</td>
+ <td>66</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">170</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">dest</span><span class="o">-&gt;</span><span class="n">name</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">170</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">83</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">dispatcher</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">83</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">dispatcher</span><span class="o">-&gt;</span><span class="n">cmds</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">83</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">64418</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">ctx</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">new_ctx</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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">actual_response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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="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><span class="w"></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><span class="w"></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><span class="w"></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 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_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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.css b/coverage/index.css
new file mode 100644
index 0000000..b51dc2e
--- /dev/null
+++ b/coverage/index.css
@@ -0,0 +1,505 @@
+:root {
+ font-family: sans-serif;
+ --unknown_color: LightGray;
+ --low_color: #FF6666;
+ --medium_color: #F9FD63;
+ --high_color: #85E485;
+ --covered_color: #85E485;
+ --uncovered_color: #FF8C8C;
+ --takenBranch_color: Green;
+ --notTakenBranch_color: Red;
+}
+
+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.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
+{
+ 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
+{
+ background-color: var(--low_color) !important;
+}
+
+table.legend span.coverage-medium,
+table.coverage td.coverage-medium
+{
+ background-color: var(--medium_color) !important;
+}
+
+table.legend span.coverage-high,
+table.coverage 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.uncoveredLine,
+span.uncoveredLine
+{
+ background-color: var(--uncovered_color) !important;
+}
+
+.linebranch, .linecount
+{
+ font-family: monospace;
+ border-right: 1px gray solid;
+ background-color: lightgray;
+ text-align: right;
+}
+
+.linebranchDetails
+{
+ position: relative;
+}
+.linebranchSummary
+{
+ cursor: help;
+}
+.linebranchContents
+{
+ 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;
+}
+
+.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
+{
+ font-family: monospace;
+ font-weight: bold;
+}
+
+pre
+{
+ height : 15px;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.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 */
+.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..22de3df
--- /dev/null
+++ b/coverage/index.event_loop.c.037d09258818a0617a2d29f47e2b5064.html
@@ -0,0 +1,2163 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>39</td>
+ <td>76</td>
+ <td class="coverage-low">51.3%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36966</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">res</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">83</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">loop</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36966</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">112</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">entry</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36854</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">entry</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36800</td>
+ <td class="src coveredLine"><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><span class="w"></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 48335 times.</div>
+ <div class="takenBranch">&check; Branch 5 taken 36800 times.</div>
+ <div class="takenBranch">&check; Branch 6 taken 25199 times.</div>
+ <div class="takenBranch">&check; Branch 7 taken 11601 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">85135</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">305444</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><span class="w"></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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">ptr</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">buf</span><span class="p">)</span><span class="w"></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><span class="w"></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">305444</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><span class="w"></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><span class="w"></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">305444</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><span class="w"></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><span class="w"></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">305444</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><span class="w"></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">305444</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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">buf</span><span class="p">)</span><span class="w"></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><span class="w"></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">305444</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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLNVAL</span><span class="p">)</span><span class="w"></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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLERR</span><span class="p">)</span><span class="w"></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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLHUP</span><span class="p">)</span><span class="w"></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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLRDHUP</span><span class="p">)</span><span class="w"></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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLPRI</span><span class="p">)</span><span class="w"></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><span class="w"></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 305444 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">events</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></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">305444</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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">events</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">POLLOUT</span><span class="p">)</span><span class="w"></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><span class="w"></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">305444</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><span class="w"></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><span class="w"></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">63268</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><span class="w"></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><span class="w"></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">63268</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><span class="w"></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 63268 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">63268</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="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">63268</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><span class="w"></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 240941 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 63268 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">304209</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><span class="w"></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">240941</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><span class="w"></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">240941</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><span class="w"></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><span class="w"></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 63268 times.</div>
+ <div class="notTakenBranch">&cross; Branch 2 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">63268</td>
+ <td class="src coveredLine"><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><span class="w"></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 240941 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 63268 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">304209</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><span class="w"></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">240941</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><span class="w"></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 240941 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 coveredLine">240941</td>
+ <td class="src coveredLine"><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><span class="w"></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">240941</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><span class="w"></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><span class="w"></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">63268</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><span class="w"></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><span class="w"></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">63268</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><span class="w"></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><span class="w"></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><span class="w"></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">63268</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><span class="w"></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">63268</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><span class="w"></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 63268 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">63268</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="w"></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><span class="w"></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">63268</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><span class="w"></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 63268 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">63268</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">63268</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><span class="w"></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">63268</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><span class="w"></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 240941 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 63268 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">304209</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><span class="w"></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">240941</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><span class="w"></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 176438 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 64503 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">240941</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><span class="w"></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">176438</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><span class="w"></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><span class="w"></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 coveredLine">64503</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">240941</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><span class="w"></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">240941</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">continue</span><span class="p">;</span><span class="w"></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><span class="w"></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">63268</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><span class="w"></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">63268</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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..3a3f228
--- /dev/null
+++ b/coverage/index.file.c.0cc24881e570d19e625204519d50254f.html
@@ -0,0 +1,1491 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>20</td>
+ <td>52</td>
+ <td class="coverage-low">38.5%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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">403638</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><span class="w"></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><span class="w"></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><span class="w"></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">403638</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></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">403638</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><span class="w"></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 403638 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">403638</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">403638</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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">my_chdir</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!*</span><span class="n">old</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">my_readlink</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">20</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">tmp_buf</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">20</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">20</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">110566</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36720</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">261952</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><span class="w"></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">271132</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><span class="w"></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 271132 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">271132</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">tmp_contents</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">271132</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><span class="w"></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">271132</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><span class="w"></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 271132 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">271132</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 261952 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">271132</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">261952</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><span class="w"></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 212056 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">261952</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..a82cde7
--- /dev/null
+++ b/coverage/index.git.c.ecafe65200a95f92fc10a3095d9e5f09.html
@@ -0,0 +1,1092 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>10</td>
+ <td>64</td>
+ <td class="coverage-low">15.6%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.0)</a>
+ </footer>
+ </body>
+</html>
diff --git a/coverage/index.html b/coverage/index.html
new file mode 100644
index 0000000..e252ffb
--- /dev/null
+++ b/coverage/index.html
@@ -0,0 +1,475 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</td>
+ </tr>
+ <tr>
+ <th scope="row">Legend:</th>
+ <td class="legend">
+ <span class="coverage-low">low: &gt;= 0%</span>
+ <span class="coverage-medium">medium: &gt;= 75.0%</span>
+ <span class="coverage-high">high: &gt;= 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>2841</td>
+ <td class="coverage-low">71.1%</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/>
+
+<table class="file-list">
+ <col/>
+ <colgroup span="3"/>
+ <colgroup span="2"/>
+
+ <tr>
+ <th scope="col">File</th>
+ <th scope="colgroup" colspan=3>Lines</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 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 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 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 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 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-high" min="0" max="100" value="90.3" title="90.3%">90.3</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-high">90.3%</td>
+ <td class="CoverValue line-coverage coverage-high">28 / 31</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 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 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 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 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 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 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 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 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 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 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.6" title="73.6%">73.6</meter>
+ </td>
+ <td class="CoverValue line-coverage coverage-low">73.6%</td>
+ <td class="CoverValue line-coverage coverage-low">81 / 110</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 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 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 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 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 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 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 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 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 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 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="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">32 / 36</td>
+ <td class="CoverValue branch-coverage coverage-low">50.0%</td>
+ <td class="CoverValue branch-coverage coverage-low">5 / 10</td>
+ </tr>
+
+</table>
+
+ <hr/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..2f4c69d
--- /dev/null
+++ b/coverage/index.json.c.9fe0913c76249e448eec3131d7e8b263.html
@@ -0,0 +1,2632 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>22</td>
+ <td>70</td>
+ <td class="coverage-low">31.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">55212</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">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">str</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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></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><span class="w"></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><span class="w"></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 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">result</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">110344</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">obj</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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">arr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">385956</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">165506</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></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><span class="w"></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 coveredLine">165506</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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></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><span class="w"></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 coveredLine">27540</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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">errno</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">321772</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">174684</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">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">174684</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">64312</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">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">64312</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..dc75407
--- /dev/null
+++ b/coverage/index.json_rpc.c.2aeccc6679171fb423f72eef95ec01c0.html
@@ -0,0 +1,4816 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>58</td>
+ <td>146</td>
+ <td class="coverage-low">39.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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></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><span class="w"></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 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="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><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18412</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27594</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">required</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18412</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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_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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">request</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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 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">params</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">request</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">impl</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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></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><span class="w"></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><span class="w"></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 coveredLine">27540</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">45900</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">45900</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">45900</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">params</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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">params</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18412</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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 coveredLine">9206</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">response</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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">impl</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9206</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..0b70801
--- /dev/null
+++ b/coverage/index.log.c.47179e5db7ed3f2db741c99372ba24f3.html
@@ -0,0 +1,539 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>4</td>
+ <td>6</td>
+ <td class="coverage-low">66.7%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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">182861</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">182861</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><span class="w"></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 182861 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">182861</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">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><span class="w"></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><span class="w"></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 182861 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">182861</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">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><span class="w"></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><span class="w"></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">182861</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><span class="w"></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">182861</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><span class="w"></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">182861</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><span class="w"></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">182861</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><span class="w"></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">182861</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><span class="w"></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><span class="w"></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">182861</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><span class="w"></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><span class="w"></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">182861</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><span class="w"></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">182861</td>
+ <td class="src coveredLine"><span class="p">}</span><span class="w"></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">708199</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><span class="w"></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><span class="w"></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 525338 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 182861 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">708199</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><span class="w"></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">525338</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><span class="w"></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">182861</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><span class="w"></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">182861</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><span class="w"></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">182861</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><span class="w"></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">182861</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><span class="w"></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><span class="w"></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">182861</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><span class="w"></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><span class="w"></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">182861</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><span class="w"></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">182861</td>
+ <td class="src coveredLine"><span class="p">}</span><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..25c157c
--- /dev/null
+++ b/coverage/index.net.c.37012fce13860cefc5963f57e0f36732.html
@@ -0,0 +1,2386 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>30</td>
+ <td>92</td>
+ <td class="coverage-low">32.6%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">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><span class="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">it</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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">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><span class="w"></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><span class="w"></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 coveredLine">27620</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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">it</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">92012</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">92012</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 109165 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 92012 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">201177</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><span class="w"></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">109165</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><span class="w"></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 109165 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">109165</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_now</span><span class="p">)</span><span class="w"></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><span class="w"></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 109165 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">109165</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">109165</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><span class="w"></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><span class="w"></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 coveredLine">92012</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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></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><span class="w"></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><span class="w"></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 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="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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">data</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..d724686
--- /dev/null
+++ b/coverage/index.process.c.52f9324f34485af6c2c0f7cc7bbf5f8b.html
@@ -0,0 +1,1491 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>12</td>
+ <td>52</td>
+ <td class="coverage-low">23.1%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36</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="n">WIFSIGNALED</span><span class="p">(</span><span class="n">status</span><span class="p">))</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_spawn</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_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><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">result</span><span class="p">)</span><span class="w"></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><span class="w"></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="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><span class="w"></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="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></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><span class="w"></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="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><span class="w"></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 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">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><span class="w"></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_errno</span><span class="p">(</span><span class="s">&quot;pipe2&quot;</span><span class="p">);</span><span class="w"></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="mi">-1</span><span class="p">;</span><span class="w"></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="p">}</span><span class="w"></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="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><span class="w"></span></td>
+ </tr>
+
+ <tr class="source-line">
+ <td class="lineno"><a id="l109" href="#l109">109</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary 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 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">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><span class="w"></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">log_errno</span><span class="p">(</span><span class="s">&quot;fork&quot;</span><span class="p">);</span><span class="w"></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="k">goto</span><span class="w"> </span><span class="n">close_pipe</span><span class="p">;</span><span class="w"></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="p">}</span><span class="w"></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">
+ <details class="linebranchDetails">
+ <summary 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 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="o">!</span><span class="n">child_pid</span><span class="p">)</span><span class="w"></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="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><span class="w"></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">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><span class="w"></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">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><span class="w"></span></td>
+ </tr>
+
+ <tr class="source-line">
+ <td class="lineno"><a id="l120" href="#l120">120</a></td>
+ <td class="linebranch">
+ <details class="linebranchDetails">
+ <summary 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 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">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></td>
+ </tr>
+
+ <tr class="source-line">
+ <td class="lineno"><a id="l121" href="#l121">121</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><span class="w"></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">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><span class="w"></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 9180 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">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></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_data</span><span class="p">;</span><span class="w"></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="k">goto</span><span class="w"> </span><span class="n">close_pipe</span><span class="p">;</span><span class="w"></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 uncoveredLine">&cross;</td>
+ <td class="src uncoveredLine"><span class="nl">free_data</span><span class="p">:</span><span class="w"></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="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><span class="w"></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">9180</td>
+ <td class="src coveredLine"><span class="nl">close_pipe</span><span class="p">:</span><span class="w"></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">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><span class="w"></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="w"> </span><span class="cm">/* No errno checking here, we might&#39;ve already closed the write end. */</span><span class="w"></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">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><span class="w"></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="k">return</span><span class="w"> </span><span class="n">ret</span><span class="p">;</span><span class="w"></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="p">}</span><span class="w"></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">18360</td>
+ <td class="src coveredLine"><span class="kt">int</span><span class="w"> </span><span class="nf">proc_output_create</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">proc_output</span><span class="w"> </span><span class="o">**</span><span class="n">_output</span><span class="p">)</span><span class="w"></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><span class="w"></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">18360</td>
+ <td class="src coveredLine"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">proc_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">proc_output</span><span class="p">));</span><span class="w"></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 18360 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="o">!</span><span class="n">output</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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="n">log_errno</span><span class="p">(</span><span class="s">&quot;calloc&quot;</span><span class="p">);</span><span class="w"></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">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span><span class="w"></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="w"> </span><span class="p">}</span><span class="w"></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">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><span class="w"></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">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><span class="w"></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_size</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></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">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><span class="w"></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">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><span class="w"></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><span class="w"></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">18360</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">proc_output_destroy</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span><span class="w"></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><span class="w"></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">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><span class="w"></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="p">);</span><span class="w"></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="p">}</span><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><span class="kt">void</span><span class="w"> </span><span class="nf">proc_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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span><span class="w"></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="p">{</span><span class="w"></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 1 not taken.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9180 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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="p">}</span><span class="w"></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>
+
+ </table>
+</div>
+
+ <hr/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..e07baf3
--- /dev/null
+++ b/coverage/index.protocol.c.4964764a2e677a55c2f4207a995c3ce7.html
@@ -0,0 +1,2054 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>24</td>
+ <td>48</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">**</span><span class="n">_output</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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">proc_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><span class="w"></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">proc_output_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">output</span><span class="p">);</span><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output_destroy</span><span class="p">(</span><span class="n">output</span><span class="p">);</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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></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><span class="w"></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><span class="w"></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 coveredLine">26</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..3b4a19b
--- /dev/null
+++ b/coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html
@@ -0,0 +1,1816 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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>110</td>
+ <td class="coverage-low">73.6%</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/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">entry</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">repo_url</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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 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">repo_rev</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">27472</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><span class="w"></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><span class="w"></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">27472</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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="p">}</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 78 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 9102 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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..3a2d594
--- /dev/null
+++ b/coverage/index.server.c.0235f01a49d01b35e981a41f59a9d2d6.html
@@ -0,0 +1,4455 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>61</td>
+ <td>146</td>
+ <td class="coverage-low">41.8%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18472</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18472</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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">18292</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><span class="w"></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><span class="w"></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">18292</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><span class="w"></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 18292 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">18292</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">18292</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18443</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">27255</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><span class="w"></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><span class="w"></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">27255</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 coveredLine">9234</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">27472</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><span class="w"></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><span class="w"></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">27472</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">27501</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><span class="w"></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><span class="w"></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 27472 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ <div class="takenBranch">&check; Branch 3 taken 27255 times.</div>
+ <div class="takenBranch">&check; Branch 4 taken 217 times.</div>
+ <div class="takenBranch">&check; Branch 6 taken 9180 times.</div>
+ <div class="takenBranch">&check; Branch 7 taken 18075 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">27501</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 18292 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 9209 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">27501</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><span class="w"></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">18292</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><span class="w"></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 18292 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">18292</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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="notTakenBranch">&cross; Branch 0 not taken.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">;</span><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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">proc_output_destroy</span><span class="p">(</span><span class="n">output</span><span class="p">);</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">server</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 54034 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 29 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">54063</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><span class="w"></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 54034 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">54034</td>
+ <td class="src coveredLine"><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><span class="w"></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">54034</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><span class="w"></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 54034 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">54034</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..95b0db1
--- /dev/null
+++ b/coverage/index.server_main.c.3ca591a47eaf0cc37ef7579efe6031fe.html
@@ -0,0 +1,885 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>10</td>
+ <td>14</td>
+ <td class="coverage-low">71.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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 coveredLine">64</td>
+ <td class="src coveredLine"><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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..5ca5cd8
--- /dev/null
+++ b/coverage/index.signal.c.71d63611c8a63e0778dd598afad76dfd.html
@@ -0,0 +1,826 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>5</td>
+ <td>10</td>
+ <td class="coverage-low">50.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">82943</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">83</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></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><span class="w"></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><span class="w"></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 coveredLine">83</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..4ef0e01
--- /dev/null
+++ b/coverage/index.sqlite.c.13cf77e7262c599539f10e3be0248b3e.html
@@ -0,0 +1,2733 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>21</td>
+ <td>95</td>
+ <td class="coverage-low">22.1%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">58</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">203</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36775</td>
+ <td class="src coveredLine"><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><span class="w"></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 coveredLine">36775</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">203</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">45984</td>
+ <td class="src coveredLine"><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><span class="w"></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="nl">SQLITE_ROW</span><span class="p">:</span><span class="w"></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><span class="w"></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="nl">SQLITE_DONE</span><span class="p">:</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">45929</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27540</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">full_stmt</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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 coveredLine">29</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><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..97fd758
--- /dev/null
+++ b/coverage/index.storage.c.96d197609feea4b630e7b775fb18af81.html
@@ -0,0 +1,1189 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>9</td>
+ <td>20</td>
+ <td class="coverage-low">45.0%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="p">);</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">18502</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">api</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">api</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">api</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">api</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">api</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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">api</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">api</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..935b9ed
--- /dev/null
+++ b/coverage/index.storage_sqlite.c.b44f7f73d467be85cd4227a40c11d12a.html
@@ -0,0 +1,4906 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>66</td>
+ <td>156</td>
+ <td class="coverage-low">42.3%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">sqlite</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">sqlite</span><span class="o">-&gt;</span><span class="n">path</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">174</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">174</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">174</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36775</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">36775</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">full_script</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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 coveredLine">29</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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 coveredLine">29</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">sqlite</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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 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="o">!</span><span class="n">ret</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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 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="o">!</span><span class="n">ret</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output</span><span class="w"> </span><span class="o">*</span><span class="n">output</span><span class="p">)</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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 coveredLine">9180</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">26</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></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><span class="w"></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><span class="w"></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 coveredLine">26</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..d4fd91c
--- /dev/null
+++ b/coverage/index.string.c.2a75186e465ffeac1b306a350f4a56f8.html
@@ -0,0 +1,515 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>3</td>
+ <td>16</td>
+ <td class="coverage-low">18.8%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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">305444</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><span class="w"></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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">dst</span><span class="p">)</span><span class="w"></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><span class="w"></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 305444 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">dst</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">end</span><span class="p">)</span><span class="w"></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><span class="w"></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">305444</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><span class="w"></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 305444 times.</div>
+ <div class="notTakenBranch">&cross; Branch 1 not taken.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">305444</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">p</span><span class="p">)</span><span class="w"></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">305444</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..d3df3c6
--- /dev/null
+++ b/coverage/index.tcp_server.c.68fbb5aebb39dbc263f5110d228c9b35.html
@@ -0,0 +1,2532 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>27</td>
+ <td>66</td>
+ <td class="coverage-low">40.9%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</td>
+ <td class="src coveredLine"><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><span class="w"></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 14983 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 12637 times.</div>
+ <div class="takenBranch">&check; Branch 2 taken 6743 times.</div>
+ <div class="takenBranch">&check; Branch 3 taken 8240 times.</div>
+ <div class="takenBranch">&check; Branch 4 taken 8078 times.</div>
+ <div class="takenBranch">&check; Branch 5 taken 12637 times.</div>
+ <div class="takenBranch">&check; Branch 6 taken 9276 times.</div>
+ <div class="takenBranch">&check; Branch 7 taken 3361 times.</div>
+ </div>
+ </details>
+ </td>
+ <td class="linecount coveredLine">35698</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><span class="w"></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 coveredLine">27620</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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></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><span class="w"></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><span class="w"></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 coveredLine">27620</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></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><span class="w"></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><span class="w"></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 coveredLine">27620</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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></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><span class="w"></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><span class="w"></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 coveredLine">27620</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="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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">client</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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">server</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">29</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">27620</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..86f8955
--- /dev/null
+++ b/coverage/index.worker.c.4cbdfac39be7d0330fdfd94f65ce9ea9.html
@@ -0,0 +1,2492 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>27</td>
+ <td>62</td>
+ <td class="coverage-low">43.5%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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">result</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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 coveredLine">54</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">result</span><span class="o">-&gt;</span><span class="n">host</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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">result</span><span class="o">-&gt;</span><span class="n">port</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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">worker</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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">worker</span><span class="o">-&gt;</span><span class="n">settings</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_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><span class="w"></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">proc_output_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">result</span><span class="p">);</span><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output_dump</span><span class="p">(</span><span class="n">result</span><span class="p">);</span><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">proc_output_destroy</span><span class="p">(</span><span class="n">result</span><span class="p">);</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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 coveredLine">9234</td>
+ <td class="src coveredLine"><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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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">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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..a7f416f
--- /dev/null
+++ b/coverage/index.worker_main.c.3e96ea0429977547c8b5eee564591fe0.html
@@ -0,0 +1,885 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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">Branches:</th>
+ <td>10</td>
+ <td>14</td>
+ <td class="coverage-low">71.4%</td>
+ </tr>
+ </table>
+</div>
+ </div>
+
+ <hr/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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="w"></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><span class="w"></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><span class="w"></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 coveredLine">114</td>
+ <td class="src coveredLine"><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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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="o">:</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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 coveredLine">54</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></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.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..9402dd1
--- /dev/null
+++ b/coverage/index.worker_queue.c.aeb7258cd8f695c41a9aa8634701b38c.html
@@ -0,0 +1,755 @@
+<!DOCTYPE html>
+<html>
+
+ <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>
+ <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-04-25 03:45:42</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>36</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/>
+
+<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><span class="w"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="cp"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 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="o">!</span><span class="n">entry</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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">27255</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><span class="w"></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><span class="w"></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">27255</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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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><span class="w"></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 9098 times.</div>
+ <div class="takenBranch">&check; Branch 1 taken 82 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><span class="w"></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><span class="w"></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><span class="w"></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/>
+
+ <footer>
+ Generated by: <a href="http://gcovr.com">GCOVR (Version 5.0)</a>
+ </footer>
+ </body>
+</html>