I’m working on a rust project and want to upload the code coverage to sonarcloud, I have set up a GitHub action for transforming the coverage result to comply with sonar requirements, but when I run the pipeline, the sonar scanner throws an error when parsing the format. I have no clue what to do next.
GitHub repository with changes:
Error received
ERROR Error during parsing of the generic coverage report ‘/home/runner/work/photo-statistics/photo-statistics/cobertura.xml’. Look at SonarQube documentation to know the expected XML format.
latest job execution:
I’m using grcov for generating the coverage file in Cobertura XML format.
Cobertura XML file
<?xml version="1.0"?><!DOCTYPE coverage SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-04.dtd'><coverage lines-covered="342" lines-valid="368" line-rate="0.9293478260869565" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0" version="1.9" timestamp="1739797131"><sources><source>/home/runner/work/photo-statistics/photo-statistics</source></sources><packages><package name="src/main.rs" line-rate="0.7" branch-rate="0" complexity="0"><classes><class name="main" filename="src/main.rs" line-rate="0.7" branch-rate="0" complexity="0"><methods><method name="photo_statistics::main::{closure#0}" signature="" line-rate="0.6538461538461539" branch-rate="0" complexity="0"><lines><line number="21" hits="4"/><line number="22" hits="3"/><line number="23" hits="3"/><line number="24" hits="3"/><line number="25" hits="3"/><line number="26" hits="3"/><line number="27" hits="3"/><line number="28" hits="3"/><line number="29" hits="3"/><line number="30" hits="3"/><line number="31" hits="3"/><line number="32" hits="3"/><line number="33" hits="3"/><line number="34" hits="3"/><line number="35" hits="3"/><line number="36" hits="3"/><line number="37" hits="0"/><line number="38" hits="0"/><line number="39" hits="0"/><line number="40" hits="0"/><line number="41" hits="0"/><line number="42" hits="0"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="0"/><line number="46" hits="3"/></lines></method><method name="photo_statistics::main" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="17" hits="3"/><line number="18" hits="3"/><line number="19" hits="3"/><line number="20" hits="3"/></lines></method><method name="photo_statistics::main::{closure#0}" signature="" line-rate="0.6538461538461539" branch-rate="0" complexity="0"><lines><line number="21" hits="4"/><line number="22" hits="3"/><line number="23" hits="3"/><line number="24" hits="3"/><line number="25" hits="3"/><line number="26" hits="3"/><line number="27" hits="3"/><line number="28" hits="3"/><line number="29" hits="3"/><line number="30" hits="3"/><line number="31" hits="3"/><line number="32" hits="3"/><line number="33" hits="3"/><line number="34" hits="3"/><line number="35" hits="3"/><line number="36" hits="3"/><line number="37" hits="0"/><line number="38" hits="0"/><line number="39" hits="0"/><line number="40" hits="0"/><line number="41" hits="0"/><line number="42" hits="0"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="0"/><line number="46" hits="3"/></lines></method><method name="photo_statistics::main" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="17" hits="3"/><line number="18" hits="3"/><line number="19" hits="3"/><line number="20" hits="3"/></lines></method></methods><lines><line number="17" hits="3"/><line number="18" hits="3"/><line number="19" hits="3"/><line number="20" hits="3"/><line number="21" hits="4"/><line number="22" hits="3"/><line number="23" hits="3"/><line number="24" hits="3"/><line number="25" hits="3"/><line number="26" hits="3"/><line number="27" hits="3"/><line number="28" hits="3"/><line number="29" hits="3"/><line number="30" hits="3"/><line number="31" hits="3"/><line number="32" hits="3"/><line number="33" hits="3"/><line number="34" hits="3"/><line number="35" hits="3"/><line number="36" hits="3"/><line number="37" hits="0"/><line number="38" hits="0"/><line number="39" hits="0"/><line number="40" hits="0"/><line number="41" hits="0"/><line number="42" hits="0"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="0"/><line number="46" hits="3"/></lines></class></classes></package><package name="src/utils.rs" line-rate="1" branch-rate="0" complexity="0"><classes><class name="utils" filename="src/utils.rs" line-rate="1" branch-rate="0" complexity="0"><methods><method name="photo_statistics::utils::normalize_focal_length" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="1" hits="24"/><line number="2" hits="24"/><line number="3" hits="10"/><line number="4" hits="10"/><line number="5" hits="10"/><line number="6" hits="10"/><line number="7" hits="10"/><line number="8" hits="10"/><line number="9" hits="10"/><line number="10" hits="8"/><line number="11" hits="6"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="14"/><line number="17" hits="16"/><line number="18" hits="24"/></lines></method><method name="photo_statistics::utils::normalize_white_balance" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="20" hits="24"/><line number="21" hits="24"/><line number="22" hits="24"/><line number="23" hits="24"/><line number="24" hits="20"/><line number="25" hits="18"/><line number="26" hits="18"/><line number="27" hits="18"/><line number="28" hits="18"/><line number="29" hits="18"/><line number="31" hits="24"/></lines></method><method name="photo_statistics::utils::normalize_focal_length" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="1" hits="24"/><line number="2" hits="24"/><line number="3" hits="10"/><line number="4" hits="10"/><line number="5" hits="10"/><line number="6" hits="10"/><line number="7" hits="10"/><line number="8" hits="10"/><line number="9" hits="10"/><line number="10" hits="8"/><line number="11" hits="6"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="14"/><line number="17" hits="16"/><line number="18" hits="24"/></lines></method><method name="photo_statistics::utils::normalize_white_balance" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="20" hits="24"/><line number="21" hits="24"/><line number="22" hits="24"/><line number="23" hits="24"/><line number="24" hits="20"/><line number="25" hits="18"/><line number="26" hits="18"/><line number="27" hits="18"/><line number="28" hits="18"/><line number="29" hits="18"/><line number="31" hits="24"/></lines></method><method name="photo_statistics::utils::tests::test_normalize_focal_length" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/></lines></method><method name="photo_statistics::utils::tests::test_normalize_white_balance" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/><line number="52" hits="2"/><line number="53" hits="2"/></lines></method></methods><lines><line number="1" hits="24"/><line number="2" hits="24"/><line number="3" hits="10"/><line number="4" hits="10"/><line number="5" hits="10"/><line number="6" hits="10"/><line number="7" hits="10"/><line number="8" hits="10"/><line number="9" hits="10"/><line number="10" hits="8"/><line number="11" hits="6"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="14"/><line number="17" hits="16"/><line number="18" hits="24"/><line number="20" hits="24"/><line number="21" hits="24"/><line number="22" hits="24"/><line number="23" hits="24"/><line number="24" hits="20"/><line number="25" hits="18"/><line number="26" hits="18"/><line number="27" hits="18"/><line number="28" hits="18"/><line number="29" hits="18"/><line number="31" hits="24"/><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/><line number="52" hits="2"/><line number="53" hits="2"/></lines></class></classes></package><package name="src/worker.rs" line-rate="0.631578947368421" branch-rate="0" complexity="0"><classes><class name="worker" filename="src/worker.rs" line-rate="0.631578947368421" branch-rate="0" complexity="0"><methods><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="12" hits="3"/><line number="13" hits="2"/><line number="15" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}::{closure#0}" signature="" line-rate="0.2222222222222222" branch-rate="0" complexity="0"><lines><line number="16" hits="0"/><line number="17" hits="0"/><line number="18" hits="0"/><line number="19" hits="0"/><line number="20" hits="0"/><line number="21" hits="0"/><line number="22" hits="0"/><line number="24" hits="3"/><line number="25" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/></lines></method><method name="photo_statistics::worker::test_worker_parallel_processing" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="28" hits="2"/><line number="29" hits="2"/><line number="30" hits="2"/><line number="31" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}::{closure#0}" signature="" line-rate="0.2222222222222222" branch-rate="0" complexity="0"><lines><line number="16" hits="0"/><line number="17" hits="0"/><line number="18" hits="0"/><line number="19" hits="0"/><line number="20" hits="0"/><line number="21" hits="0"/><line number="22" hits="0"/><line number="24" hits="3"/><line number="25" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="12" hits="3"/><line number="13" hits="2"/><line number="15" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/></lines></method></methods><lines><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="3"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="0"/><line number="17" hits="0"/><line number="18" hits="0"/><line number="19" hits="0"/><line number="20" hits="0"/><line number="21" hits="0"/><line number="22" hits="0"/><line number="24" hits="3"/><line number="25" hits="2"/><line number="28" hits="2"/><line number="29" hits="2"/><line number="30" hits="2"/><line number="31" hits="2"/></lines></class></classes></package><package name="src/statistics.rs" line-rate="0.9764705882352941" branch-rate="0" complexity="0"><classes><class name="statistics" filename="src/statistics.rs" line-rate="0.9764705882352941" branch-rate="0" complexity="0"><methods><method name="photo_statistics::statistics::tests::test_handle_null_dates::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="95" hits="3"/><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_handle_null_dates" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="87" hits="2"/><line number="88" hits="2"/><line number="89" hits="2"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/><line number="94" hits="2"/></lines></method><method name="photo_statistics::statistics::generate_statistics" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="2"/><line number="27" hits="2"/><line number="29" hits="20"/><line number="30" hits="18"/><line number="31" hits="18"/></lines></method><method name="photo_statistics::statistics::generate_statistics::{closure#0}" signature="" line-rate="0.8571428571428571" branch-rate="0" complexity="0"><lines><line number="32" hits="18"/><line number="33" hits="18"/><line number="34" hits="18"/><line number="35" hits="18"/><line number="36" hits="18"/><line number="37" hits="18"/><line number="38" hits="18"/><line number="40" hits="20"/><line number="41" hits="18"/><line number="42" hits="18"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="18"/><line number="47" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_photo_count_by_year::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="77" hits="5"/><line number="78" hits="2"/><line number="79" hits="2"/><line number="80" hits="2"/><line number="81" hits="2"/><line number="82" hits="2"/><line number="83" hits="2"/><line number="84" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_photo_count_by_year" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="65" hits="2"/><line number="66" hits="2"/><line number="67" hits="2"/><line number="68" hits="2"/><line number="69" hits="2"/><line number="70" hits="2"/><line number="71" hits="2"/><line number="72" hits="2"/><line number="73" hits="2"/><line number="74" hits="2"/><line number="75" hits="2"/><line number="76" hits="2"/></lines></method><method name="photo_statistics::statistics::generate_statistics" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="2"/><line number="27" hits="2"/><line number="29" hits="20"/><line number="30" hits="18"/><line number="31" hits="18"/></lines></method><method name="photo_statistics::statistics::tests::setup_test_db" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="58" hits="6"/><line number="59" hits="6"/><line number="60" hits="6"/><line number="61" hits="6"/><line number="62" hits="6"/></lines></method><method name="photo_statistics::statistics::generate_statistics::{closure#0}" signature="" line-rate="0.8571428571428571" branch-rate="0" complexity="0"><lines><line number="32" hits="18"/><line number="33" hits="18"/><line number="34" hits="18"/><line number="35" hits="18"/><line number="36" hits="18"/><line number="37" hits="18"/><line number="38" hits="18"/><line number="40" hits="20"/><line number="41" hits="18"/><line number="42" hits="18"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="18"/><line number="47" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_empty_statistics" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/></lines></method></methods><lines><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="2"/><line number="27" hits="2"/><line number="29" hits="20"/><line number="30" hits="18"/><line number="31" hits="18"/><line number="32" hits="18"/><line number="33" hits="18"/><line number="34" hits="18"/><line number="35" hits="18"/><line number="36" hits="18"/><line number="37" hits="18"/><line number="38" hits="18"/><line number="40" hits="20"/><line number="41" hits="18"/><line number="42" hits="18"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="18"/><line number="47" hits="2"/><line number="58" hits="6"/><line number="59" hits="6"/><line number="60" hits="6"/><line number="61" hits="6"/><line number="62" hits="6"/><line number="65" hits="2"/><line number="66" hits="2"/><line number="67" hits="2"/><line number="68" hits="2"/><line number="69" hits="2"/><line number="70" hits="2"/><line number="71" hits="2"/><line number="72" hits="2"/><line number="73" hits="2"/><line number="74" hits="2"/><line number="75" hits="2"/><line number="76" hits="2"/><line number="77" hits="5"/><line number="78" hits="2"/><line number="79" hits="2"/><line number="80" hits="2"/><line number="81" hits="2"/><line number="82" hits="2"/><line number="83" hits="2"/><line number="84" hits="2"/><line number="87" hits="2"/><line number="88" hits="2"/><line number="89" hits="2"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/><line number="94" hits="2"/><line number="95" hits="3"/><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/></lines></class></classes></package><package name="src/database.rs" line-rate="0.984375" branch-rate="0" complexity="0"><classes><class name="database" filename="src/database.rs" line-rate="0.984375" branch-rate="0" complexity="0"><methods><method name="photo_statistics::database::format_date" signature="" line-rate="0.6666666666666666" branch-rate="0" complexity="0"><lines><line number="63" hits="8"/><line number="64" hits="8"/><line number="65" hits="8"/><line number="66" hits="0"/><line number="67" hits="0"/><line number="68" hits="8"/></lines></method><method name="photo_statistics::database::tests::setup_test_db" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="76" hits="6"/><line number="77" hits="6"/><line number="78" hits="6"/><line number="79" hits="6"/><line number="80" hits="6"/></lines></method><method name="photo_statistics::database::tests::test_insert_null_metadata::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="136" hits="3"/><line number="137" hits="2"/><line number="138" hits="2"/><line number="139" hits="2"/><line number="140" hits="2"/></lines></method><method name="photo_statistics::database::tests::test_insert_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/><line number="102" hits="2"/><line number="103" hits="2"/><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/><line number="109" hits="2"/><line number="110" hits="2"/><line number="111" hits="2"/><line number="112" hits="2"/><line number="113" hits="2"/><line number="114" hits="2"/><line number="115" hits="2"/><line number="116" hits="2"/><line number="117" hits="2"/><line number="118" hits="2"/></lines></method><method name="photo_statistics::database::tests::test_insert_null_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="126" hits="2"/><line number="127" hits="2"/><line number="128" hits="2"/><line number="129" hits="2"/><line number="130" hits="2"/><line number="131" hits="2"/><line number="132" hits="2"/><line number="133" hits="2"/><line number="134" hits="2"/><line number="135" hits="2"/></lines></method><method name="photo_statistics::database::tests::test_create_tables::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="89" hits="3"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/></lines></method><method name="photo_statistics::database::format_date" signature="" line-rate="0.6666666666666666" branch-rate="0" complexity="0"><lines><line number="63" hits="8"/><line number="64" hits="8"/><line number="65" hits="8"/><line number="66" hits="0"/><line number="67" hits="0"/><line number="68" hits="8"/></lines></method><method name="photo_statistics::database::create_tables_if_needed" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="6" hits="17"/><line number="7" hits="17"/><line number="8" hits="17"/><line number="9" hits="17"/><line number="10" hits="17"/><line number="11" hits="17"/><line number="12" hits="17"/><line number="13" hits="17"/><line number="14" hits="17"/><line number="15" hits="17"/><line number="16" hits="17"/><line number="17" hits="17"/><line number="18" hits="17"/><line number="19" hits="17"/><line number="20" hits="17"/><line number="21" hits="17"/><line number="22" hits="17"/><line number="23" hits="17"/><line number="24" hits="17"/><line number="25" hits="17"/><line number="26" hits="17"/><line number="27" hits="17"/><line number="28" hits="17"/><line number="29" hits="17"/></lines></method><method name="photo_statistics::database::tests::test_create_tables" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="83" hits="2"/><line number="84" hits="2"/><line number="85" hits="2"/><line number="86" hits="2"/><line number="87" hits="2"/><line number="88" hits="2"/></lines></method><method name="photo_statistics::database::insert_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="31" hits="14"/><line number="32" hits="14"/><line number="33" hits="14"/><line number="34" hits="14"/><line number="35" hits="14"/><line number="36" hits="14"/><line number="37" hits="14"/><line number="38" hits="14"/><line number="39" hits="14"/><line number="40" hits="14"/><line number="41" hits="14"/><line number="42" hits="14"/><line number="43" hits="14"/><line number="44" hits="14"/><line number="45" hits="14"/><line number="46" hits="14"/><line number="47" hits="14"/><line number="48" hits="14"/><line number="49" hits="14"/><line number="50" hits="14"/><line number="51" hits="14"/><line number="52" hits="14"/><line number="53" hits="14"/><line number="54" hits="14"/><line number="55" hits="14"/><line number="56" hits="14"/><line number="57" hits="14"/><line number="58" hits="14"/><line number="59" hits="14"/><line number="60" hits="12"/><line number="61" hits="14"/></lines></method><method name="photo_statistics::database::tests::test_insert_metadata::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="119" hits="3"/><line number="120" hits="2"/><line number="121" hits="2"/><line number="122" hits="2"/><line number="123" hits="2"/></lines></method><method name="photo_statistics::database::insert_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="31" hits="14"/><line number="32" hits="14"/><line number="33" hits="14"/><line number="34" hits="14"/><line number="35" hits="14"/><line number="36" hits="14"/><line number="37" hits="14"/><line number="38" hits="14"/><line number="39" hits="14"/><line number="40" hits="14"/><line number="41" hits="14"/><line number="42" hits="14"/><line number="43" hits="14"/><line number="44" hits="14"/><line number="45" hits="14"/><line number="46" hits="14"/><line number="47" hits="14"/><line number="48" hits="14"/><line number="49" hits="14"/><line number="50" hits="14"/><line number="51" hits="14"/><line number="52" hits="14"/><line number="53" hits="14"/><line number="54" hits="14"/><line number="55" hits="14"/><line number="56" hits="14"/><line number="57" hits="14"/><line number="58" hits="14"/><line number="59" hits="14"/><line number="60" hits="12"/><line number="61" hits="14"/></lines></method><method name="photo_statistics::database::tests::test_db_error_handling" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="143" hits="2"/><line number="144" hits="2"/><line number="145" hits="2"/><line number="146" hits="2"/><line number="147" hits="2"/><line number="148" hits="2"/><line number="149" hits="2"/><line number="150" hits="2"/></lines></method><method name="photo_statistics::database::create_tables_if_needed" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="6" hits="17"/><line number="7" hits="17"/><line number="8" hits="17"/><line number="9" hits="17"/><line number="10" hits="17"/><line number="11" hits="17"/><line number="12" hits="17"/><line number="13" hits="17"/><line number="14" hits="17"/><line number="15" hits="17"/><line number="16" hits="17"/><line number="17" hits="17"/><line number="18" hits="17"/><line number="19" hits="17"/><line number="20" hits="17"/><line number="21" hits="17"/><line number="22" hits="17"/><line number="23" hits="17"/><line number="24" hits="17"/><line number="25" hits="17"/><line number="26" hits="17"/><line number="27" hits="17"/><line number="28" hits="17"/><line number="29" hits="17"/></lines></method></methods><lines><line number="6" hits="17"/><line number="7" hits="17"/><line number="8" hits="17"/><line number="9" hits="17"/><line number="10" hits="17"/><line number="11" hits="17"/><line number="12" hits="17"/><line number="13" hits="17"/><line number="14" hits="17"/><line number="15" hits="17"/><line number="16" hits="17"/><line number="17" hits="17"/><line number="18" hits="17"/><line number="19" hits="17"/><line number="20" hits="17"/><line number="21" hits="17"/><line number="22" hits="17"/><line number="23" hits="17"/><line number="24" hits="17"/><line number="25" hits="17"/><line number="26" hits="17"/><line number="27" hits="17"/><line number="28" hits="17"/><line number="29" hits="17"/><line number="31" hits="14"/><line number="32" hits="14"/><line number="33" hits="14"/><line number="34" hits="14"/><line number="35" hits="14"/><line number="36" hits="14"/><line number="37" hits="14"/><line number="38" hits="14"/><line number="39" hits="14"/><line number="40" hits="14"/><line number="41" hits="14"/><line number="42" hits="14"/><line number="43" hits="14"/><line number="44" hits="14"/><line number="45" hits="14"/><line number="46" hits="14"/><line number="47" hits="14"/><line number="48" hits="14"/><line number="49" hits="14"/><line number="50" hits="14"/><line number="51" hits="14"/><line number="52" hits="14"/><line number="53" hits="14"/><line number="54" hits="14"/><line number="55" hits="14"/><line number="56" hits="14"/><line number="57" hits="14"/><line number="58" hits="14"/><line number="59" hits="14"/><line number="60" hits="12"/><line number="61" hits="14"/><line number="63" hits="8"/><line number="64" hits="8"/><line number="65" hits="8"/><line number="66" hits="0"/><line number="67" hits="0"/><line number="68" hits="8"/><line number="76" hits="6"/><line number="77" hits="6"/><line number="78" hits="6"/><line number="79" hits="6"/><line number="80" hits="6"/><line number="83" hits="2"/><line number="84" hits="2"/><line number="85" hits="2"/><line number="86" hits="2"/><line number="87" hits="2"/><line number="88" hits="2"/><line number="89" hits="3"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/><line number="102" hits="2"/><line number="103" hits="2"/><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/><line number="109" hits="2"/><line number="110" hits="2"/><line number="111" hits="2"/><line number="112" hits="2"/><line number="113" hits="2"/><line number="114" hits="2"/><line number="115" hits="2"/><line number="116" hits="2"/><line number="117" hits="2"/><line number="118" hits="2"/><line number="119" hits="3"/><line number="120" hits="2"/><line number="121" hits="2"/><line number="122" hits="2"/><line number="123" hits="2"/><line number="126" hits="2"/><line number="127" hits="2"/><line number="128" hits="2"/><line number="129" hits="2"/><line number="130" hits="2"/><line number="131" hits="2"/><line number="132" hits="2"/><line number="133" hits="2"/><line number="134" hits="2"/><line number="135" hits="2"/><line number="136" hits="3"/><line number="137" hits="2"/><line number="138" hits="2"/><line number="139" hits="2"/><line number="140" hits="2"/><line number="143" hits="2"/><line number="144" hits="2"/><line number="145" hits="2"/><line number="146" hits="2"/><line number="147" hits="2"/><line number="148" hits="2"/><line number="149" hits="2"/><line number="150" hits="2"/></lines></class></classes></package><package name="src/exiftool.rs" line-rate="0.8421052631578947" branch-rate="0" complexity="0"><classes><class name="exiftool" filename="src/exiftool.rs" line-rate="0.8421052631578947" branch-rate="0" complexity="0"><methods><method name="photo_statistics::exiftool::run_exiftool" signature="" line-rate="0.3333333333333333" branch-rate="0" complexity="0"><lines><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="0"/><line number="28" hits="0"/><line number="29" hits="0"/><line number="30" hits="0"/><line number="31" hits="0"/><line number="33" hits="0"/><line number="34" hits="2"/></lines></method><method name="photo_statistics::exiftool::execute_exiftool" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="4" hits="2"/><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/></lines></method><method name="photo_statistics::exiftool::tests::test_run_exiftool_success" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/></lines></method><method name="photo_statistics::exiftool::tests::test_run_exiftool_fail" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/></lines></method><method name="photo_statistics::exiftool::execute_exiftool" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="4" hits="2"/><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/></lines></method><method name="photo_statistics::exiftool::run_exiftool" signature="" line-rate="0.3333333333333333" branch-rate="0" complexity="0"><lines><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="0"/><line number="28" hits="0"/><line number="29" hits="0"/><line number="30" hits="0"/><line number="31" hits="0"/><line number="33" hits="0"/><line number="34" hits="2"/></lines></method></methods><lines><line number="4" hits="2"/><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="0"/><line number="28" hits="0"/><line number="29" hits="0"/><line number="30" hits="0"/><line number="31" hits="0"/><line number="33" hits="0"/><line number="34" hits="2"/><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/></lines></class></classes></package><package name="src/files.rs" line-rate="1" branch-rate="0" complexity="0"><classes><class name="files" filename="src/files.rs" line-rate="1" branch-rate="0" complexity="0"><methods><method name="photo_statistics::files::scan_directory" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="7" hits="7"/><line number="8" hits="7"/><line number="9" hits="7"/><line number="11" hits="3936"/><line number="13" hits="3936"/></lines></method><method name="photo_statistics::files::tests::test_scan_directory" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="32" hits="2"/><line number="33" hits="2"/><line number="34" hits="2"/><line number="35" hits="2"/><line number="36" hits="2"/><line number="37" hits="2"/><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/></lines></method><method name="photo_statistics::files::scan_directory" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="7" hits="7"/><line number="8" hits="7"/><line number="9" hits="7"/><line number="11" hits="3936"/><line number="13" hits="3936"/></lines></method><method name="photo_statistics::files::scan_directory::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="15" hits="4148"/><line number="16" hits="2465"/><line number="17" hits="2"/><line number="18" hits="2465"/><line number="19" hits="861"/><line number="20" hits="610"/><line number="22" hits="7"/><line number="23" hits="7"/></lines></method><method name="photo_statistics::files::scan_directory::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="15" hits="4148"/><line number="16" hits="2465"/><line number="17" hits="2"/><line number="18" hits="2465"/><line number="19" hits="861"/><line number="20" hits="610"/><line number="22" hits="7"/><line number="23" hits="7"/></lines></method><method name="photo_statistics::files::tests::test_scan_directory_no_images" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="43" hits="2"/><line number="44" hits="2"/><line number="45" hits="2"/><line number="46" hits="2"/><line number="47" hits="2"/></lines></method></methods><lines><line number="7" hits="7"/><line number="8" hits="7"/><line number="9" hits="7"/><line number="11" hits="3936"/><line number="13" hits="3936"/><line number="15" hits="4148"/><line number="16" hits="2465"/><line number="17" hits="2"/><line number="18" hits="2465"/><line number="19" hits="861"/><line number="20" hits="610"/><line number="22" hits="7"/><line number="23" hits="7"/><line number="32" hits="2"/><line number="33" hits="2"/><line number="34" hits="2"/><line number="35" hits="2"/><line number="36" hits="2"/><line number="37" hits="2"/><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/><line number="45" hits="2"/><line number="46" hits="2"/><line number="47" hits="2"/></lines></class></classes></package></packages></coverage>